Here I will note some things concerning diverse stuff around maemo on n900 that might come in handy later for me. Or maybe for you.


[edit] root

to gain root superuser privileges, which you need e.g. for manual package installation etc, install rootsh, in xTerminal type:


[edit] partitions

the N900 filesystem is, to my liking, inconveniently set up.

as root:

sfdisk -l
cat /etc/fstab 

informs you that you have

Device               Boot   Start     End      #cyls #blocks   Id  System
/dev/mmcblk0p1          1  884864  884864   28315648    c      W95 FAT32 (LBA)
/dev/mmcblk0p2     884865  950400   65536    2097152   83      Linux
/dev/mmcblk0p3     950401  974976   24576     786432   82      Linux swap / Solaris
/dev/mmcblk0p4          0       -       0          0    0      Empty

mounted as

rootfs / rootfs defaults,errors=remount-ro,noatime 0 0
/dev/mmcblk0p1 /home/user/MyDocs vfat noauto,nodev,noexec,nosuid,noatime,nodiratime,utf8,uid=29999,shortname=mixed,dmask=000,fmask=0133,rodir 0 0
/dev/mmcblk0p2 /home ext3 rw,noatime,errors=continue,commit=1,data=writeback 0 0
/dev/mmcblk0p3 none swap sw 0 0

vfat cannot handle file attributes like being executable, as set by

chmod +x

thus, you can only run binaries and scripts if they are in root (227mb; physically, they are on a 256MB OneNAND chip) or in /home (2gb) and not in /home/user/MyDocs (28gb)! (Physically, the latter plus the swap partition reside in a 32GB EMMC, which is capable of about a third the reading speed of the OneNAND.)

what to do about that? you could repartition the whole device. or just format your microsd card as ext2 or ext3. problem with the last option is that it will not be automounted. you could, of course, mount it manually, or modify the etc init scripts to do it upon every reboot. if you go for manual mount, you might also want to restart tracker (see below), as it would not scan the sdcard otherwise.

[edit] optification

Several apps in maemo extra devel repository will install to rootfs, where you have only 227mb. Nice apps (and system components) don't behave like that, they install to /home/opt and are called "optified" when having learned to behave well like that, or are just forced out and merely symbolically linked to their original place.

[edit] rootfs size problems

The filesystem rootfs, mounted in /, is a speciel partition of 227,8 mb containing some preinstalled programs, global configuration info and data. Some apps from "maemo extra devel" will also install there. A notable example is Abiword, which, sadly being unoptified yet, currently uses up 10mb on rootfs. You can check how much space is consumed totally by entering "df -h" in xTerminal (usually the first line of output).

Even better, use storageuse, which shows a red circle and via "Scan Packages" function shows also which apps use what, where rootfs usage is in red. When you come close to 100%, a lot of mischief can happen, e.g., you may get "write error - write (28 no space left on device)" when trying to access extras devel in Program Manager.

How to free space? When you reflash, rootfs will be reset also (of course). But you would rather try the methods suggested in Free up rootfs space, e.g., having rootsh installed, in xTerminal:

apt-get clean
apt-get autoclean

There is also a nice script by User:Tanner (see also another one, and a more radical repartitioning method), which i have modified to include some more directories:

# N900 script to safely free space on rootfs
# (c) 2010 by Thomas Tanner <>, modified by Caze (
# licensed under GPLv3
# move root stuff to /home
dirs="usr/share/icons usr/share/nokia-maps usr/share/pixmaps usr/share/hildon-welcome usr/share/themes usr/share/fonts usr/share/locale usr/lib/locale var/lib/apt"
#optional: var/lib/dpkg
if test -d /home/var/cache/apt; then
  # keep existing apt cache
  rm -rf /var/cache/apt
  ln -s /home/var/cache/apt /var/cache/apt
  dirs="$dirs var/cache/apt"
(cd / && du -sc $dirs)
for d in $dirs; do
    test -L /$d && continue
    echo moving /$d
    rm -rf /home/$d
    mkdir -p /home/$d
    cp -a /$d /home/$d/..
    rm -rf /$d
    ln -s /home/$d /$d

i suggest you copy this to in some texteditor on your pc, save it, copy it to n900 connected via usb (don't save on fat partition on sd card but on ext3 partition somewhere else), disconnect, having installed rootsh, start xTerminal on n900, cd to where you saved the script,

chmod +x

[edit] install further apps

in older firmware, you could put the Application Manager in a mode that supports "Install from file", which is, for trivial reasons, called "Red Pill" mode. It is activated by selecting "Application catalogues" from the drop-down menu, tapping "New", entering "matrix" as URL, tapping outside the focus window, selecting "Red".

this does no more than

dpkg -i thusandso.deb

but might be a bit faster when you just have no xterm open. note it does not check package dependencies, as opposed to

apt-get install thusandso

[edit] remote desktop

ssh, telnet, vnc (multiple alternatives) and rdesktop (for w2k/nt) work (among others, i suppose). also, logmein should.

[edit] java

n900 comes with ThumbEE, a proprietary java optimizer (general JIT, not JVM-specific), a successor of Jazelle which came with N770, N800 and N810. You can have Sun Java SE (for applets, not J2ME, which is what mobile phone games etc in .jar files use) from Easy Debian. for J2ME over J2SE, use MicroEmulator. You could also apt-get netbeans from debian/lenny. See also [1], [2] and [3].

[edit] android

you should be able to install nitroid. or wait for vmware on n900?

[edit] (older) mac emulation

basilisk II should work.

[edit] amiga emulation

is work in progress.

[edit] tracker

the media on your phone is automatically catalogued by a tracker daemon called trackerd. it is configured by /home/user/.config/tracker/tracker.cfg . applications like the media player use the information tracker collects. you can change the paths that are searched by manually editing this cfg file, e.g. to include subfolders on your microsd card (mounted as /media/mmc1) or to exclude stuff you want to keep a bit more private. you could use e.g. vi or leafpad for the editing of this file or use tracker-cfg in extras-devel. to restart tracker:

tracker-processes -r
/usr/lib/tracker/trackerd &

[edit] shortcuts

there are several N900_shortcuts_and_gestures. note also, in the form of context - action - result:

  • anywhere - double press power button - lock
  • anywhere - ctrl+backspace - task switcher
  • menu/multitasing shortcut/icon - long press - back to desktop
  • text input - double tap ctrl - hold upper case
  • text input - double tap function key - hold numerics input
  • text input - ctrl+shift+p - screenshot
  • text input - ctrl + x/c/c - cut/copy/paste
  • anywhere - turn phone - open phone (must be activated in phone menu: turning control)

[edit] sms

you can send sms to multiple contacts.

[edit] simple customizations

if you like, there are plenty of ways in Customizing Maemo, such as:

  • ringtones: settings / profiles / ringing tone
  • desktop shortcut to folder: go to file:/// in browser, ctrl+d, add desktop shortcut
  • rearrange stuff in menu etc: you can change /etc/xdg/menus/
  • remap keyboard
  • play with Themes
  • add a reboot button

[edit] update to PR 1.2

first of all, you DID JUST BACKUP all your things on you n900, didn't you (using nokia content copier, e.g.)?! now, as was often the case, the nokia software update (nsu) will in lots of cases prove to be total crap. it will probably complain "Nokia Software Updater has attempted to connect to the internet but has failed three times. This could be because of a poor-quality, slow or intermittent internet connection, or restrictions due to a firewall." actually, it is because of the programmers' incompetence. so help yourself. check your imei under settings / device information or below you battery. go to and provide this number. then download a file like RX-51_2009SE_10.2010.19-1_PR_COMBINED_MR0_ARM.bin (this one is 187.721.717 bytes in size, but size differs for different localisations). while it downloads, find the place to then put it, probably C:\Documents and Settings\All Users\Application Data\Nokia\Nokia Service Layer\A\nsl_service_module_00001\vpls\\Products\rx-51\ . of course, the path will differ if you don't have an english version of windows or installed it anywhere else than on c: . now you can restart nsu and test your luck, or rather other corrupt routines of nsu. for example, experiment with the right sequence of starting nsu / connecting cable / processing nsu's dialogs. for me, after several retries, involving removing the battery etc, it worked after first having connected with all those n900 devices auto-recognized (usb modem etc), then removing usb cable, then putting it back, not (!) selecting "pc suite mode" but not selecting any of both options, just clicking "try again", after which it loaded a certain Nokia Service Layer A driver. you can realize that it actually does work when on your n900 there begins a green line on the bottom of the white NOKIA start screen, which will be finished after about 3min. oh, and you DID backup all your stuff, didn't you?!