So, time passed and my once shiny and new n900 now is filled up with crap I needed to try out over time and I finally decided to reflash it…
And I decided to document the process as I do not use the backup function to its full extend as I will do not want to get e.g. all apps reinstalled after reflashing.
Instructions to myself 🙂
Items to backup using backup tool
Files to backup manually
List of packages I want to reinstall
- command line applications
- advanced power
- Presence VNC
- Wizard Mounter
- FM Boost
- Mobile Hotspot
- Optimize N900
- Tracker Cfg
- FM Radio
- transition control
- 3g/2g selection applet
- wifi switcher
- rotation lock
- tablet mode
- advanced power monitor
- openvpn applet
- openssh applet
- tor applet
Things to do after reflash
- remove unnecessary packages
- add sdk, extras-testing and extras-devel repos
- install dbus-script
- dbus settings for saving power by karam
- extend with speed settings for kernel
- extend with powersave settings for kernel
- tweak ohmd settings
- create startup script to make changes permanent
- test different io scheduler
- install mlocker
- make x lock in ram
- install speedpatch (cgroups) / batterypatch (dbus)
- install fAircrack
- setup alarmd
- disable im accounts from 22:00 to 09:00
- disable bt and wlan from 00:00 to 08:00
- setup quickmount shares
- create bt a2dp connection shortcuts
- install uboot bootloader
- install android to mmc
- install meego to mmc
How to run the scripts / setup
Once untaring the tar ball cd into its top level directory, all further instructions assume this to be the working directory.
Edit this file:
Set BASEDIR to point to the extracted directory.
Set N900 to the hostname / ip address of the n900.
Finally copy the files from your latest N900 backup created with its backup tool to backup/nokia_backup and other own backups to backup/my_backup.
There is not much to be done, details on this process are on the maemo wiki:
Partition 32GB sdcard
Create several partitions for additional operating systems and format them as ext3
- 20GB ext3 free
- 768MB swap
- 5GB reserved for android
- 5GB reserved for meego
Initial installation of n900
These are the first steps done on the n900 after the reflash
- install available security update using application manager
- install package sudser using application manager
- install essential packages from command line
sudo apt-get install busybox-power openssh bzip2 wget pwsafe
- restore ~/.ssh for passwordless login and unlock user
Now the system is accessible from remote and one can comfortably do the next steps using a laptop.
Repartition the internal memory to have a bigger /home partition
The current partiton layout reduces the MyDocs partition so that /home has 5GB instead of only 2GB. To other sizes please edit the file config/partition-table. Make sure all partitions are aligned to 32 KB and sizes are multiples of 32 KB. The sectors are 512 bytes, so the block counts must multiplied by 2. For example, 2GB= 4194304 blocks. Each partition should start at start+size of the previous partition. The first partition must start at 64. Make sure to keep the swap partition (the number may be changed).
Step 1: Backup /home to memorycard and patch bootup script to mount backup as /home
Now reboot the N900
Step 2: With /home being mounted from the backup we can repartition the internal mmc and format its partitions.
Again, reboot the N900.
Step 3: restore backup of /home to internal memory and restore bootup files to their original
Again, reboot the N900 a last time to mount /home from internal memory again.
Automount ext3 formatted mmc
By default the n900 won’t recognize and mount a ext3 formatted sd card. To enable this some files need to be patched.
Enable swap on mmc
The initial partition layout for the sd card contained a swap partition. By enabling it, maemo will use swap on the internal partition as well on the sd card.
Set system time and date from network
install package openntp
To restore only selected data, the content of the backup gets extracted and copied manually onto the n900.
Extract the content of the Nokia backup files
Nokia backup files have to be in $BASEDIR/backup.
Restore files from the extracted backup
This script will restore selected data from the backup files created by the N900 backup tool.
Here the detailed commands for manually restoring the settings:
Restore the calendar data.scp -r $WD/Root/home/user/.calendar/calendardb.backup user@$N900:/home/user/.calendar/calendardb
Restore the address book.scp -r $WD/Root/home/user/.osso-abook-backup/* user@$N900:~user/.osso-abook/
Restore bookmarks.scp -r $WD/Root/home/user/.bookmarks user@$N900:/home/user/
Restore mail accounts.scp -r $WD/Root/var/lib/gconf/apps/modest/server_accounts/ root@$N900:/var/lib/gconf/apps/modest/ scp -r $WD/Root/var/lib/gconf/apps/modest/accounts root@$N900:/var/lib/gconf/apps/modest/
Restore IM accounts (this will restore accounts without passwords).scp -r $WD/Root/tmp/.rtcom-accounts user@$N900:~user/
Restore bluetooth setup.scp -r $WD/Root/var/lib/bluetooth root@$N900:/var/lib/
Restore openvpn.scp -r $WD/Root/etc/openvpn root@$N900:/etc/
Restore files not in the Nokia backup.
This script will restore selected data from the backup files created by yourself.
Here the detailed commands for manually restoring the settings:
Restore pwsafe.scp -r $MYBACKUP/Safe user@$N900:/home/user/MyDocs/.documents
Restore gnupgscp -r $MYBACKUP/.gnupg/ user@$N900:/home/user/
Restore ~/binscp -r $MYBACKUP/bin user@$N900:/home/user/
Setup kernel power and fixed wlan modules
Install kernel + osso-wlan-modules with fix for scanning when getting out of access point reach.
Enable smartreflex and xlv profile
Copy a profile based on xlv with smartreflex enabled to n900
Install CSSU upgrade
Follow instructions given at
Install package swappolube. Setup is done with the gui on n900.
By default maemo checks regulary for package updates. As tcosts quite some battery, switch the check interval to 365 days.
Enable HWsync in hildon-desktop.ini
This will enable HW acceleration support for the desktop animations and thus make them appear smoother – at least that is the theory.
Free up root space
For this I modified the moveroot.sh script from here so it can move and restore and also asks for confirmation before actually moving files.
Install 720p support
Using some libraries from the n950 root filesystem one can enable the n900 to do 720p video playback. However only some videos can be played and over clocking the n900 is required as well. The script assumes the n950 libraries to be a tar ball named lib_dsp_n950.tgz that contains the whole path to the libraries (/lib/dsp) placed under $BASEDIR/data/720p.
Install wl1251 injection enabled driver
This updated driver has features like packet injection enabled. It is compiled for the power46 kernel but runs fine with power49 as well, so for now the precompiled module is in use. The module will reside in /home/opt/compat-wireless and two scripts in /usr/sbin can be used to load or unload the new modules: /usr/sbin/load_injection.sh and /usr/sbin/unload_injection.sh.
Install nokia maps update to show directions
The shipped nokia maps application is pretty useless until the modified index.html from Blaizzen gets installed.
There seem to exist several flashplayer 10 libs for n900, I got one from TI for testing and found another one in some forum. For copyright reasons it is not possible to share those, so the script expects them in $BASEDIR/data/flash being called either libflashplayer.so_dynamically or libflashplayer.so_statically. Also a script gets copied to the n900 called /usr/sbin/switch_flash_version.sh that can be used to select one of the available flash versions.