Updating the firmware

This page has seen massive edits to get it in line with N900 details of flashing. N8x0 owners might want to have a look to older versions, like http://wiki.maemo.org/index.php?title=Updating_the_firmware&oldid=17120

Video Tutorials:

http://www.youtube.com/watch?v=E1zvRjL-2cM

http://www.youtube.com/watch?v=O54KdLvTA2U

N9
Please see the main article Flashing N9.

N900
''These descriptions assume that you are using the latest official images. This page is not exactly a step-by-step instruction, so better read the whole page prior to starting the flashing process.''

While talking about flashing, there are exactly two distinct processes and related files (also called images) frequently mentioned:
 * (flashing the) FIASCO aka *COMBINED*, also referred to as "rootfs" though this file and flashing process also consists of / affects NOLO bootloader (the several stages), the kernel, and usually the GSM modem firmware, in addition to the root filesystem which is basically the content of your 240 MB NAND flash storage and implements the Linux operating system.
 * (flashing the) eMMC aka *VANILLA*, which will replace the complete content of N900's internal 32 GB eMMC storage (embedded MMC), which is: the  partition which has your stored browser passwords and game highscores and calendar and contacts etc.   is also containing  . Plus eMMC stores all the content of the MyDocs 28 GB VFAT partition, where all the media and docs and other user content lives.

Often people use the term "firmware" for either or both of those images. It's misleading.

Flashing the rootfs on your N900 will reset the device's linux system back to factory settings, meaning all additional applications will vanish, and some configuration details (e.g. LED patterns) are reset to the original configuration, with the exception of the lock code; if you have already set a custom lock code, it will remain intact, instead of reverting to the default "12345." Also, all information contained in  (except  ) will remain intact. This means the information stored in  which is the area visible in the default file manager (or when connecting to a computer), will remain intact. Your external memory (microSD), will also be unaffected.

Flashing the eMMC and rootfs on your N900 will completely reset the device to factory settings, reverting everything to factory settings, including /home with all (app-)preferences, bookmarks, contacts, communications, but again, excluding the external memory on micro-SD card and the lockcode. (you MUST flash rootfs as well, when flashing eMMC (because of  deletion)

It is strongly advised you regularly use the Backup application to create backups of your settings and data to a safe storage. You will want to configure the Backup application in such a way it stores the backups to your microSD card - alternatively when creating manual backup of MyDocs as suggested below, backups stored to default location "N900" will be included and thus safe.

The Backup application will save:


 * Communication and Calendar: Stored conversations, accounts, contacts, and calendar entries. Only applies to content used with stock applications. (i.e. not Pidgin, or other third-party applications)
 * Bookmarks: Bookmarks stored via MicroB. (Default browser only)
 * Settings: Your current settings in the Settings "application." (Settings in, GConf,  .) Third party settings applets will also be backed up and restored once installed. Manually created shell scripts or other files (except those in eMMC/MyDocs) must be manually backed up prior to a rootfs flash.
 * Application List: A list of repositories and installed applications to be re-activated and installed after flashing. (Only applies to applications and repositories installed via the included Application Manager)

When using Backup application to restore from some backup, you can select which of the above listed groups of data shall be restored. For Application List you even can select on a per-application granularity, i.e. exclude an arbitrary number of applications from restore. (NOTE: it is a good idea to do a new backup of the system immediately prior to any restore - of course you don't overwrite an existing backup file for that, instead give the new backup a new descriptive name, like "system_broken-foobar__prior_to_restore")

When flashing the eMMC, all user-created content on MyDocs ("N900") must also be backed up manually to an external location in order to be preserved (i.e. computer or microSD). You can use Mass-Storage-mode via USB for this, or copy the whole content of MyDocs with Filemanager or similar tools. The eMMC image will contain and restore the MyDocs factory setting files and folders (.documents, .images, icons, etc.).

N800/N810
Upgrading wipes out your  directory. All of it. Make sure you backup all your data before upgrading.

All Systems
For Windows, Mac or Linux you can use flasher-3.5 which can be download from the tablets-dev page. This page contains all installation packages include documentation for using the flasher.

Note:
If http://tablets-dev.nokia.com/ does not work use the following mirror:

http://skeiron.org/tablets-dev/

see link "Command line flasher binaries are available here" (on "Maemo 5 for Nokia N900" page).


 * 1) Download the Flasher for your device model: N900, N810, N800 or 770 or mirror
 * 2) Download the latest firmware image for your device model:
 * 3) * for N900
 * 4) * for N900 (site mirror)
 * 5) ** for UK devices
 * 6) * for N810 WiMAX Edition
 * 7) * for N810
 * 8) * for N810 (site mirror)
 * 9) * for N800
 * 10) * for 770 (or, for the Hacker Editions, OS2007HE and OS2008HE)
 * 11) Ensure the battery is fully charged. Connect to charger until green light when screen locked! Don't say "I already did it this morning"! (this point obviously only applies when your device is not "bricked" or bootlooping.)
 * 12) Unplug the charger and switch off the device.

Linux PC
sudo dpkg -i  If you are using 64-bit Linux, you'll need to force installation as follows: sudo dpkg -i --force-architecture  Suitable USB device not found, waiting Some notes: ./flasher-3.5: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory you are probably on 64 bit and you need to install a libusb compatibility package. For example, on openSUSE 11.4 you just run zypper in libusb-0_1-4-32bit On a debian based system you can download and install the 32-bit version in a separate location (don't install it on your system itself -- note: installing libusb0.1-4 from repos on ubuntu 12.10-amd64 worked fine for one user) First download the libusb-0.1-4_0.1.12-13_i386.deb library (google is your friend) and then: dpkg-deb -c libusb-0.1-4_0.1.12-13_i386.deb  sudo dpkg -x libusb-0.1-4_0.1.12-13_i386.deb libusb-0.1-4_0.1.12-13_i386  sudo mv libusb-0.1-4_0.1.12-13_i386/lib/* /lib32  cd /usr/lib32  sudo ln -s /lib32/libusb-0.1.so.4  Now Set the library path (as su): sudo su  export LD_LIBRARY_PATH=/usr/lib32/:"$LD_LIBRARY_PATH" Now you can run the flasher application (as su) Unable to enumerate USB buses! the problem usually is the kernel module cdc_phonet that is automatically loaded. The solution is to temporarily blacklist it, until you are done flashing. On openSUSE this can be done by creating a file like this: echo "blacklist cdc_phonet" >/etc/modprobe.d/00-blacklist-cdcphonet.conf When you finish flashing, remove the file.
 * 1) Download the Flasher for your device model: N900, N810, N800 or 770
 * 2) Download the latest firmware image for your device model: N900(For UK N900 Devices: Maemo 5 UK Firmware), N810 WiMAX Edition, N810, N800, or 770 (Hacker Editions: OS2007HE, OS2008HE)
 * 3) Ensure the battery of Nokia device is fully charged.
 * 4) Unplug the USB cable if present, and switch off the device.
 * 5) If you downloaded the .deb version of the Flasher, install it with:
 * 1) If you downloaded the .tar.gz version instead, you should untar it manually. The instructions below assume you have untarred it to the current directory.
 * 2) If you installed the .deb version, run: sudo flasher-3.5 -F  -f If you are using the .tar.gz package, use: sudo ./flasher-3.5 -F  -f
 * 3) It will say:
 * 1) * N900: While holding the u key, connect the N900 to your computer via USB. Wait until you see a dim screen on your N900 with a Nokia logo in the middle of your screen with an USB icon in the top right corner. Note: You may not need to hold the U key - it seems to automatically flash if the flasher is ready at boot time.
 * 2) *# If the USB logo does not appear, and the device turns off - ensure the battery is charged by connecting to the wall charger for an hour and try again. Bear in mind that neither the wall charger nor the USB cable will charge the N900 battery if the N900 cannot boot the OS.
 * 3) * N810 WiMAX, N810, N800 and 770: Connect your device to your computer via USB. While holding the Home/Swap button (It's a house on the 770 and N800, and two overlapping rectangles on the N810), power on the device by holding the power button. You should see a Nokia logo in the middle of the screen, and a USB icon in the top right corner.
 * 4) You don't need to continue to hold any buttons once flashing starts.
 * 5) It should start flashing and then reboot. You can remove the USB cable when the flasher program exits back to the shell prompt.
 * 1) If you get this error while trying to run flasher-3.5
 * 1) If flasher runs but exits when you plug in the phone saying

There are other, probably timing, reasons causing occasional "unable to enumerate USB". Immediately issue the flasher command again, up-arrow usually helps fetching last command to re-issue it.

Mac OS X
There are two methods for flashing the device on OS X, using the GUI, with the 770Flasher application or using the console, much like the Linux flashing method. Both methods work fine for both the 770 and the N800/N810.

GUI with 770Flasher
This is the easier of the two methods, and should be used by most people.


 * 1) Download the 770Flasher (yes, it will work fine for flashing an N800 or N810). Latest flashers (Linux/Mac), which work also for N900,  are also available on Latest Official Maemo Development Environment Page
 * 2) Follow the steps above to get the appropriate firmware image.
 * 3) Drag the firmware image (will end in .bin) onto 770Flasher.  Or open 770Flasher and select the image.
 * 4) The image may have a ,attachments ending. Remove this to get to .bin
 * 5) Follow the on-screen prompts.
 * 6) You should now see Suitable USB device not found, waiting, plug in the usb cable.  Switch on your device while holding the Home-button. Note for N810 users: switch on your device while holding the Swap button. Note for N900 users: Unplug USB cable. Switch of your device. Press and hold "U" key then plug in the USB cable. If the USB symbol in the top right corner shows up or the flashing starts let go the "U" key.
 * 7) Watch the messages as the image loads to the device after which it reboots automatically.

Console with Flasher-3.5
These steps cover flashing the device with OS X using the Terminal. This is the more difficult than using 770Flasher, but gives you access to the advanced options flasher-3.5 provides (like setting R&D flags, flashing only parts of the image, unpacking the image, etc).

If the device does not boot and start flashing, make sure the USB cable is plugged in.
 * 1) Follow the steps above to get the appropriate firmware image and flasher.
 * 2) Turn off your device (make sure you unplug the charger or else the device wont power down completely) and plug in the USB cable to a port on the computer and the port on your device. N900 users cannot plug in the usb cable yet, as it would start recharging the battery.
 * 3) Open up the Terminal (located in /Applications/Utilities/) and run: sudo /usr/bin/flasher-3.5 -F  -f -R You will be asked for an administrator password, enter it.
 * 4) It will say: Suitable USB device not found, waiting
 * 5) Unplug the power cord from the device, as this will prevent it from updating. Then take your device, and hold down the Home/Swap button (looks like a little house on the N800 and 770, and two overlapping rectangles on the N810 users do not need to hold down anything), and while holding down the Home/Swap button press the power button to turn it on. N900 users press ‘u’ button and plug the USB cable. Release button when flashing process begins.
 * 1) It should start flashing and then reboot. You can remove the USB cable after it has booted to a normal desktop (just make sure to eject any cards that may have mounted on your Mac).

Updating the firmware using the Nokia Software Updater
Microsoft Windows users who wish to update their N900 can use the Nokia Software Updater (aka NSU), or use the Flasher (see section below).

The Nokia Software Updater is compatible with Windows XP Service Pack 3, Windows Vista Service Pack 2, and Windows 7. (Some users may encounter problems due to varying causes.)

The Nokia Software Updater can now be used when updating from a previous firmware to a new one or re-flashing.

Updating or re-flashing the firmware using the Flasher
''Note: This method is fully compatible with 32-bit versions of Windows; 64-bit users may encounter problems. There is a workaround that is reported working though at talk.maemo.org Also note you need administrator rights to run flasher (Windows Vista and above - right click on the file and choose Run As Administrator)''

To flash from the Windows (XP, Vista, or 7) command line,


 * 1) Download and install the latest version of the Flasher.
 * 2) Download the latest firmware (.bin) file for your region and save it to   (the default path), or wherever you installed the Flasher.
 * 3) Ensure the battery is full.
 * 4) Unplug USB cable if present, and switch off the device.
 * 5) Run the Flasher from the Start menu
 * 6) This is an alternate to step 5, if you have already opened the Flasher, ignore this step. Open the Command Prompt (Start then Run or Windows Logo key + R) and type cmd then press Enter. Change the directory to where you installed the Flasher (TIP: Use the TAB key to auto-complete commands and file-names) cd "%ProgramFiles%\maemo\flasher-3.5"
 * 7) Hold the u key on the device keyboard and connect the USB cable at the same time. See the Flasher documentation for more information. (TIP: Hold the u key until Windows has successfully installed the driver.)
 * 8) Run the following command (TIP: Do not include '-R' if you are flashing EMMC as well, see below): flasher-3.5.exe -F RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin -f -R

Replace RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin with the firmware you wish to update. (Make sure you have downloaded the actual corresponding file.) The latest PR1.3 official (rootfs) images are listed below:

USA RX-51_2009SE_20.2010.36-2.002_PR_COMBINED_002_ARM.bin

Middle East and North Africa RX-51_2009SE_20.2010.36-2.003_PR_COMBINED_003_ARM.bin

India RX-51_2009SE_20.2010.36-2.004_PR_COMBINED_004_ARM.bin

UK (not the vodafone firmware, but fully compatible with vodafone devices). RX-51_2009SE_20.2010.36-2.203.1_PR_COMBINED_203_ARM.bin

Global RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin

The flash will take approximately 2-5 minutes after which the N900 will reboot and display the Welcome Screen with Regional settings. After booting, you may use the backup utility to restore your settings.

Issues with 64-bit Windows and Workarounds
According to this post, Windows driver signing can cause problems. You either need to turn on the loading of unsigned drivers or boot your computer to whole another OS. There are a few workarounds:

Workaround for "no suitable device found" problem on Windows 7 x64
Once this message appears, run  from libusb-win32 package and create an inf file for "N900 (PC Suite Mode)" and install this inf driver. Then go to Device Manager and update the driver for N900 Phone Parent and the flasher should spring to life...

Option 1
Disabling signed driver detection is done by choosing the option "Boot without checking for signed drivers" (or something similar) in the Windows boot-menu. To display the boot-menu press the "F8" key as soon as the Windows boot process starts (i.e. after the BIOS has loaded, and after GRUB or other non-Windows bootloaders have passed).

Option 2
Alternatively you can permanently disable driver checking via command line in Windows 7. Instructions. (Non-maemo.org site).

Option 3
You can use Microsoft Virtual PC - Also known as XP Mode. Professional, Enterprise, and Ultimate editions of Windows 7 come with Windows XP mode, but must be downloaded and installed before use.
 * 1) Connect your N900 in flasher mode; Hold u on the device keyboard, then connect the USB cable.
 * 2) Wait for Windows to install the appropriate drivers.
 * 3) Start Microsoft Virtual PC / Windows XP mode/
 * 4) Allow the Virtual PC to have access to your N900: (On the top bar): USB > Nokia N900 (Update mode) (Attach). (If it doesn't say (update mode), you didn't enter update mode correctly by pressing "u". Remove the cable and try again.)
 * 5) Wait for Windows to install the appropriate drivers.
 * 6) When it is finished, proceed with the normal flashing steps above.

There have been numerous reports on the forums of people trying to flash the rootfs/FIASCO and eMMC with Windows 7 64 bit XP Mode/Virtual PC, where the rootfs/FIASCO image flashed just fine, but the eMMC image stays at "no suitable device found. Waiting". Again allow the Virtual PC to have access to your N900: (On the top bar): USB > Nokia N900 but *NOTICE* now it will be Nokia N900 (PC-Suite mode) (Attach). Now the flashing will start normally.

Option 4
An alternative approach is to use an Ubuntu LiveCD or a Persistent USB installation. This way, you are essentially using Ubuntu without installing it directly on your hard drive. Have ready maemo_flasher-3.5_2.5.2.2_i386.deb, which is the Debian Linux equivalent of a setup/installation file, the firmware files you need, and optionally, this page, if you don't have access to an internet connection on the LiveCD/USB.

After booting into your LiveCD/USB, follow the instructions from the Linux section of this page.

Option 5
Install other version of update drivers. Step by step instructions can be found at talk.maemo.org. Video tutorial for setting up/installing the necessary drivers to enable flashing on Windows 7 64-bit OS can be found here:

Option 6
The Flasher (version 3.5) uses the libUSB drivers it finds in it's installed folder. Download the libusb library, and simply copy the right libusb.dll version to the folder you've installed Flasher to. So, rename libusb0_x86.dll to libusb0.dll for x86-systems (32-bit) or copy libusb0.dll from the amd64-folder for 64-bit systems.

770/N800/N810/N810 WiMAX
Internet Tablet users can go to the appropriate support page for their device (N810 WiMAX Edition, N810, N800, or 770), download and install the Software Update Wizard, run it and follow the on-screen prompts. This will work both for updating and re-flashing the same firmware image.

Flashing only the kernel from a FIASCO image (expert topic!)
If you only want to flash a kernel from a FIASCO image without overwriting your rootfs (e.g. because you tried out a different kernel and that didn't work) you can use the following flasher command instead of the one above:

sudo ./flasher-3.5 -F  --flash-only=kernel -f -R

This will flash the kernel from the FIASCO image and then reboot your device. The rootfs will not be touched by this. NB a kernel usually needs matching modules in rootfs, so odds are your kernel from FIASCO image won't work either, if you messed up the modules in rootfs - you need to flash whole COMBINED/FIASCO image then to recover.

Flashing the eMMC in the N900
Flashing the eMMC resets the MyDocs folder contents to factory settings. N900 users don't need to reflash the eMMC of their device when updating firmware but can do so to clear all data from the device. You may need to do so if you have a pre-production device e.g. in the Maemo Summit. If you have a sales unit and you have problems with your eMMC you should contact Nokia Care. However there are cases known where for instance the desktop widget configuration data which is stored in user's home directory gets corrupted and causes bootloops on hildon desktop startup failing. In this case you'll actually need to reflash your eMMC to recover system from bootlooping (there are other more involved methods to recover too, search for "backupmenu", "watchdogs", "rescueOS")

Also note that any backups created in your MyDocs area will need to be copied off the device to be safe across an eMMC flash as the MyDocs area and other partitions on  will be erased.

Note that flashing eMMC will delete the  directory, so you *always* need to reflash your rootfs (the COMBINED image) after - or same time as - flashing eMMC (VANILLA img)

Note that the eMMC images available do not contain pre-loaded maps. If you reflash your eMMC you will lose them (the Maps application will work as usual but you will need to download the maps needed).

In order to flash the eMMC, follow these steps:   Fully charge the battery (IMPORTANT!!)   Install Flasher for your OS (Linux, Mac OS X or MS Windows)   Grab the recent Vanilla eMMC image (.bin file) from the Nokia repository. There isn't always a new eMMC image for a new COMBINED image, as usually the content of eMMC doesn't change with new versions of the system.  Navigate to the directory where the image file was saved (Windows users: if you don't know the full path to the image, copy it to the flasher directory)   Execute the following command (in Linux you have to be root! On windows you have to be admin!):

Replace RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin with the name of the most recent VANILLA file you downloaded <ol>  Windows: flasher-3.5.exe -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f </li>  Linux (Replace /path/to/ with the correct full pathname to the binary. Using tab-completion helps ;-) ): /path/to/flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f </li>  Debian based Linux (e.g Ubuntu): flasher-3.5 -F RX-51_2009SE_10.2010.13-2.VANILLA_PR_EMMC_MR0_ARM.bin -f </li> </ol> </li>  Text similar to the following will be displayed on the computer: flasher v2.5.2 (Oct 21 2009)

Image 'mmc', size 255947 kB	Version RX-51_2009SE_10.2010.13-2.VANILLA Suitable USB device not found, waiting. </li>  Plug in the powered down N900 while holding 'u' key </li>  The dim Nokia screen will be displayed for a few seconds followed by progression dots. Text similar to the following will be displayed on the computer: USB device found found at bus 002, device address 014. Raw data transfer EP found at EP2. Image(s) flashed successfully in 4.711 s (9199 kB/s)! </li>  The flash will take a minute or so. </li>  When flashing of eMMC completed without errors: Switch off device by shortly removing battery. </li> Now flash the FIASCO/rootfs image using the above commands with -R parameter. </li>  If you used the -R parameter, then N900 will reboot automatically, otherwise you need to reboot manually. The bright Nokia screen will come up, followed by progression dots with yellow LED blinking for a few seconds, first boot will be slow as the device would be optifying files. </li> </ol>

Experienced users still may want to follow the rootfs-then-eMMC scheme, which doesn't need the battery removal, but is way less "fool-proof" wrt accidental boots. A boot in this context is defined as any activity of the device (flashing LED, some display on screen) that doesn't result in and stop at the NOKIA boot screen with USB icon. Especially "charging" actually also implies a boot of the system, and there's no lower limit for duration of such an accidental boot, 5s are more than enough to ruin your freshly flashed system.

Seamless Software Update
SSU is Nokia's new method for upgrading the devices over-the-air without requiring a reflash. When Nokia pushes an update over SSU, you will see an update notification and be given the option to install the update—just like with your computer.

Generally speaking, SSU updates should be relatively pain-free, but there are a few issues to watch out for:
 * If you have an aftermarket kernel or initfs installed (like the rotation support kernel or fanoush's bootmenu) and a kernel or initfs upgrade is pushed, they will be overwritten and you'll need to wait for your kernel or the bootmenu to be updated to reinstall them.
 * If you have extensively modified the home directory for user "user", such as moved all the documents to a memory card or removing or leaving empty some of the subdirectories

If the update doesn't show up for you at all, you may have accidentally (or intentionally) uninstalled osso-software-version-rx*4, which is required to update. You can get it back by simply running an, for the N800, and an  , for the N810. Then updating your repository list in Application manager.

If the packages that caused osso-software-version-rx*4 to be removed are still installed, they will need to be removed completely (in the case of conflicting packages). Alternatively, for packages which are simply newer than those specified by osso-software-version-rx*4, you can install osso-software-version-rx*4-unlocked, which does not have strict dependencies.

On N900 (probably also previous devices), it is possible that the application manager ends up with a message stating that it is required to upgrade using the Nokia PC application. In this case please read the article on known problems and possible solutions.

You can show the list of packages that are not going to be ugraded with. In that case, you can try using  command (as root, the app manager has to be shut down) to override. '''This is not supported because you can break future updates. Several users had to reflash after apt-get dist-upgrade!'''.

Troubleshooting

 * Make sure your battery is (completely) charged! Flashing will fail when battery is too low, and battery will not charge if your system does not boot up correctly. You can find yourself trapped in a deadlock, when flashing fails due to battery depleting during flashing! If your device does not enter and stay in flashing mode (NOKIA + USB-icon on screen) despite you holding the "U" key while plugging it in to charger/PC, then battery is too low. If your device does not boot to a proper system, then you usually have to find a way to charge battery externally - a bootlooping or stalled boot will not charge battery! So better completely charge your battery prior to any attempt to flash the device.
 * If you get a "Permission denied" error and have access to a linux box, then chmod +x flasher-2.0 or chmod +x flasher-3.0 or actually chmod +x flasher-3.5 nowadays to make the flasher tool executable. You may also need root permissions, run command with sudo or su to root. (Tip: If your flash only gets to 19% then produces "Permission denied," try the "global" version of the image file instead. The US version has produced this problem.)
 * If you need to flash your Nokia 770 with an image from 2005 then use the older flasher called "flasher" with no number in the name
 * If you get "Error claiming USB interface: Device or resource busy" error, make sure you run the flasher with sudo. If this does not fix the problem, as root, run modprobe -r cdc_phonet


 * If flashing stops with "Write failed after 1048576 bytes usb_bulk_write: Resource temporarily unavailable", do not disconnect your N900 from usb and try again the flasher command.
 * If you cannot establish a connection with N900, or got any other problems during starting or completing the flashing process, do the following steps which describe the complete foolproof flashing procedure again in terse form: (use a Linux machine to flash! Windows isn't really backed up with much support from community, for obvious reasons.)
 * blacklist cdc_phonet (echo "blacklist cdc_phonet" >/etc/modprobe.d/00-blacklist-cdcphonet.conf)! Run modprobe -r cdc_phonet, if it does NOT throw error, there was a module to remove -> bad.
 * (try to) Turn off the device - if nothing else helps, holding power key for >8s is the ultimate means (except next point 2.) to do this.
 * Remove the battery - even if you were not able to shut device down in 2.
 * Start flasher with above mentioned command to flash (without -R, it's a useless convenience thing). It says "Suitable device not found... waiting"
 * Plug the device to computer with a good USB cable.
 * Insert battery while holding "u" key. You can release the key as soon as screen turns on and shows the USB logo. Flashing shall start automatically. (If flasher answers "unable to enumerate USB buses!" as soon as N900 gets battery, just re-issue same flasher cmd immediately - cursor-up helps ;-D). If flasher doesn't detect the device, a Ctrl+C abort and re-issuing of the flasher command may help
 * Check for correct diagnostic output of flasher, as quoted above. After flashing has finished, remove battery ->(2.) 3.)
 * Repeat same procedure ((1.b modprobe) 2. - 7. INCL remove battery!) for each image to flash (sequence: eMMC first, then rootfs - some mess on rootfs may break eMMC flashing and require sequence rootfs eMMC rootfs again). So far this procedure always worked, given your PC side has no problems. Many known problems on PC side - esp "waits forever" / "doesn't find N900" - get fixed with a reboot *immediately prior* to doing the flashing.
 * After flashing unplug your device from PC prior to first boot. First boot can take several minutes, and screen may turn dark during that. You may try lock-slider switch, but do not power down device during first boot, until it finally finished - I.E. do not touch power button after flashing, unless you're *sure* device hasn't already started to boot. Usually device will power down when unplugged from PC in flashing mode, you can tell this from white LED fading out, not even any dim backlight, and device not reacting to lockslider and kbd-open. Power it up from battery then, using the power button. Only then plugging in the wallcharger is a good idea. Make sure device charges and recharge battery while you're at it. After battery got fully charged again, it's probably safe to switch off your N900, as first boot setup should have finished.


 * After re flashing if the sim is not detected (symbol of the sim card with a red slash across near battery meter) make sure that you have downloaded the proper Firmware Download (.bin) file for your region. If you have downloaded another .bin from some other region the sim may not be detected.

Flashed but still getting only "5 white dots going back and forth"
This can be caused by various problems. Known problems are:
 * If boot finds a corrupted FAT32, it may decide to run fsck against it, which may take like hours to complete.
 * System is trying to run corrupted ~/.profile file with wrong commands which interrupt complete boot.

Solution can be to use rescueOS: http://talk.maemo.org/showthread.php?t=75369, which can help you to mount rootfs, home (mount /dev/mmcblk0p2 /mnt/free1) and edit files or "do other useful rescue stuff".

USB
It may help to connect directly to the computer USB ports, avoiding the use of a hub - which includes the USB ports on laptop docking stations. The USB ports in the back of a laptop may also be better than using those in the front.

Some distributions do not present the USB device in the way that it expects it. First, see if it is necessary to "mount" USB:

mount -t usbfs usbfs /proc/bus/usb

If that does not work, try patching the flasher code. This replaces the use of  with the newer   filesystem:

perl -pi -e 's-/proc/bus/usb-/dev/bus/usb\000-;' -i.backup $FLASHER

Replace  with the path to your flasher-2.0 or flasher-3.0 Linux binary.