Meego Wiki
Views

ARM/N900/Developers

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Tips and Tricks)
(Tutorials and How-Tos)
Line 5: Line 5:
* [[n900_kernel_compilation | Compiling the kernel for N900]]
* [[n900_kernel_compilation | Compiling the kernel for N900]]
 +
 +
=== Getting started with DE Application development using SDK ===
 +
* Install DE release for your N900
 +
* You need supported version of host OS on your computer. For example 32-bit Ubuntu 10.04 is known to work. Othewise SDK may not install properly.
 +
* Download and install MeeGo 1.2 SDK from http://developer.meego.com/
 +
* Setup USB networking for your host, for instructions see: http://wiki.maemo.org/USB_networking
 +
* Your device should be in SDK mode by default, if not change it using the control panel
 +
* Set up connection to N900 in QtCreator. start from "Setting up the connection" in http://developer.meego.com/guides/devices/setting-nokia-n900-meego-development
 +
* Set up a new project in QtCreator.
 +
* After setting up project select Projects from side bar and in targets select run target for MeeGo. Add the N900 target you created to Deployment.
 +
* Now you can deploy and run your project automatically on device
== Useful tools / scripts / etc ==
== Useful tools / scripts / etc ==

Revision as of 07:46, 31 May 2011

Contents

Developer's corner

This page is targeted mainly for the people developing DE. Target is collect useful stuff needed in daily development work here. If you are interested in MeeGo development in general, then the official MeeGo developer site ( [1] ) is probably more useful for you.

Tutorials and How-Tos

Getting started with DE Application development using SDK

  • Install DE release for your N900
  • You need supported version of host OS on your computer. For example 32-bit Ubuntu 10.04 is known to work. Othewise SDK may not install properly.
  • Download and install MeeGo 1.2 SDK from http://developer.meego.com/
  • Setup USB networking for your host, for instructions see: http://wiki.maemo.org/USB_networking
  • Your device should be in SDK mode by default, if not change it using the control panel
  • Set up connection to N900 in QtCreator. start from "Setting up the connection" in http://developer.meego.com/guides/devices/setting-nokia-n900-meego-development
  • Set up a new project in QtCreator.
  • After setting up project select Projects from side bar and in targets select run target for MeeGo. Add the N900 target you created to Deployment.
  • Now you can deploy and run your project automatically on device

Useful tools / scripts / etc

Tips and Tricks

How to make non-mtf app to switch from fullscreen mode to task switcher?

Window minimize should work

As user how do I get to task switcher view?

Some apps do not have close button or minimize button in the UI. You can use the keyshortcut to get back to task switcher. (Almost the same shortcut as in Maemo5:

1. Open HWKB
2. press: Blue arrow (the key located between shift and ctrl) and backspace (these are the keys at least in finnish keymap)

Touching OBS for the first time

  • msugano wanted to branch uxlanuch from the public OBS to his home in the community OBS.

On his local laptop:

$ osc -A https://api.pub.meego.com branch -cm "would like to experiment e.g. xsetroot right after the start_X_server() to enhance the UX." MeeGo.com:MeeGo:1.2:oss uxlaunch

  • The new project was downloaded to his local environment. Now, it's possible to edit the source.
  • The new project was created in the community OBS under msugano's home (Build Service > Projects > home:msugano:branches:MeeGo.com:MeeGo:1.2:oss > uxlaunch).
  • However, the above project page says The project this package belongs to currently has no build targets defined.
  • Hence, msugano clicked on the "build targets" to specify, but could not find any target build that looked relevant for the DE. (lbt fixed this => thanks)
  • Then msugano received the advice to use the command line instead. (The following is not needed any more, since webui now works, but anyway FYI).

$ osc meta prj Project:DE:Trunk:Testing (copy the below)

 <repository name="standard">
   <path repository="standard" project="Project:DE:MeeGo:1.2"/>
   <arch>armv8el</arch>
   <arch>i586</arch>
 </repository>

$ osc meta prj -e home:msugano:branches:MeeGo.com:MeeGo:1.2:oss (vim starts & paste the above).


Reducing memory use

On N900 MeeGo is really tight on memory. That is why it feels sometimes so sluggish. There are few things that can be done about it.

1. Remove unused applifed processes.

As dialer UI has now been rewritten, it does not use meegotouch-applifed to manage its lifecycle. Therefore, no apps are using applifed in DE, and applifed package can be removed. You can remove it from your image with:

zypper remove meegotouch-applifed ; killall applifed

2. Remove volume-control

Volume control process consumes memory. By removing this you will save memory, but you cannot change volume. This can be done temporarily by killing process meego-volume-control or permanently by removing meego-volume-control.desktop from /etc/xdg/autostart and rebooting.

Screenshot

  • How to take a screenshot?
Start widgetsgallery
Select ->debug_tools->xx_wg_take_screenshot
Command line alternative
[meego@localhost ~]$ export DISPLAY=:0 && gst-launch-0.10 ximagesrc num-buffers=1 ! ffmpegcolorspace ! pngenc ! filesink location=screenshot.png

Kernel Compiling

1. Download Meego kernel for N900

# git clone http://git.gitorious.org/meego-device-adaptation/n900_kernel.git n900_kernel

or use http://meego.gitorious.org/meego-device-adaptation/n900_kernel/archive-tarball/master to download manually

2. Compiling Meego Kernel

Execute following commands in command prompt

# export ARCH=arm
# export CROSS_COMPILE=arm-none-linux-gnueabi-

Note: You should have arm tool chain in your host machine

Enabling CAIF Protocol support for ST Ericsson Modems (or do whatever changes you need for the kernel)

# make omap2plus_defconfig
# make menuconfig  ( Note: select caif protocol support in Networking and driver sections)

Do kernel modifications here!

# make zImage
# make modules
# make modules_install INSTALL_MOD_PATH=$path to install modules


Finally kernel images available @ $Meego_kernel_source/arch/arm/boot/zImage


3. Copy modules to N900 device ( Note: Already device should have meego os)

  1. scp -r $meego_compiled_modules_installed_path root@192.168.2.15:/

Note: connect device with host via usb cable before executing this command


4. Loading Compiled Meego kernel


Download flasher from http://tablets-dev.nokia.com/maemo-dev-env-downloads.php?f=maemo_flasher-3.5_2.5.2.2.tar.gz

Load Kernel using

# sudo ./flasher-3.5  -l -k  $Meego_kernel_source/arch/arm/boot/zImage	 -b

Note: Before executing this command,please power off the device.

Now connect USB cable with device. You will see Meego home screen after 2 or 3 minuteson this page.

Starting GPRS from console

From N900 DE console or over ssh write to add Access Point Name:

/usr/lib/ofono/test/create-internet-context internet

And take use GPRS connection:

/usr/lib/ofono/test/activate-context

And deactive GPRS connection:

/usr/lib/ofono/test/deactivate-context

If somehow modem is not running (online), you have to write:

/usr/lib/ofono/test/enable-modem
/usr/lib/ofono/test/online-modem

Links

Placeholder, let's start linking relevant information

Personal tools