Hardware/N900/Installation
SHR/FSO images for N900 are available at http://build.shr-project.org/shr-unstable/images/nokia900/
This guide is wrote with Maemo PR1.2 in mind. It should work with older versions, but it may need some small changes. Please keep in mind My Nokia service if you are about to upgrade!
[TODO] confirm version (vanous)
Download image from http://build.shr-project.org/shr-unstable/images/nokia900/ and unpack on ext3 partition of your µSD card. Put it into N900.
On your computer, you'll need Maemo Flasher installed.
[TODO]: check, if we can replace flasher-3.5 with 0xFFFF)
Contents |
Turning on developer mode
- Unplug USB cable or charger and turn off your device.
- Press "U" on keyboard and plug USB cable. When NOKIA screen appears, release button.
- Disable watchdog and enable developer mode, so on your computer, run:
# flasher-3.5 --set-rd-flags=no-omap-wd # flasher-3.5 --set-rd-flags=no-ext-wd # flasher-3.5 --enable-rd-mode
- Boot. Keyboard should be blinking and debug messages about loaded kernel should be visible on screen.
- This step is necessary, as without working watchdog in userspace device will reboot after ~one minute.
First tweaks
- Don't worry about Maemo telling you, that your SD is incompatible. It only tries to mount FAT filesystem.
- Use terminal to mount SD card and chroot to it:
sudo gainroot
[TODO] install gainroot
mount /dev/mmcblk1p1 /media/mmc1
[TODO] mmc1 can be taken, might need to make a new dir
cp /etc/resolv.conf /media/mmc1/etc/ chroot /media/mmc1
- Install packages that are not yet incorporated into default image, but can be usable ;)
opkg update opkg install udev watchdog libstdc++6 ... (TBD) opkg upgrade
- Take care about internet connection in your chrooted env.
- Type "exit" and then:
cp -r /lib/modules/* /media/mmc1/lib/modules/ cp -a /lib/firmware /media/mmc1/lib/
- Copying modules probably won't be needed with correct defconfig at SHR side.
[TODO] modules depend on booting method
[TODO] add more booting methods:
(10:31:58 PM) JaMa: vanous: I would recomend installing kernel-power version 45 where is u-boot integrated and putting my boot.scr on 1st uSD vfat partition http://build.shr-project.org/tests/jama/u-boot/ u-boot script which is executed by default from u-boot env then you'll have echo "Use run meego|shr|shr2|maemo" read boot.all.scr to understand expected partitioning and kernel naming vanous: but first issue is that currently shipped kernel needs atags (but you can use 2.6.35 as I do for SHR) small fat partition for this boot.scr and kernels is enough.
Bootloader
- Install bootmenu-n900 package from Maemo repositories
- You may need to have extras-devel repository enabled.
- In case of problems, bootmenu package also seems to work.
- Create /etc/bootmenu.d/shr.ext3.item with content:
ITEM_NAME="SHR"
ITEM_ID="shr"
ITEM_DEVICE="${EXT_CARD}p1"
ITEM_MODULES="mbcache jbd ext3"
ITEM_FSTYPE="ext3"
ITEM_FSOPTIONS="noatime,ro"
- Look at ITEM_DEVICE part and replace "p1" with number of partition you have installed SHR on.
multiboot
WARNING: work in progress
- copy the kernel to /boot/multiboot/vmlinuz-nokia900.bin
create the /etc/multiboot.d/shr.item:
ITEM_NAME="SHR"
ITEM_KERNEL=nokia900.bin
ITEM_DEVICE=${EXT_CARD}p1
ITEM_FSTYPE=ext3
ITEM_FSOPTIONS=rw,noatime,errors=remount-ro,commit=3
note that you need a kernel with ext3
Booting
- Unplug USB cable.
- Turn off your device.
- Slide it to have keyboard visible
- Turn on the device. Wait until menu arrives.
- Select SHR. Boot.
- Enjoy :)
Tweaking
- You'll probably like to have g_nokia module loaded in order to get USB networking.
- There are some kernel modules for battery handling available. (there is more usable one being developed too)
cd /lib/modules/2.6.28-omap1 wget http://my.arava.co.il/~matan/770/n900/power_supply.ko wget http://my.arava.co.il/~matan/770/n900/bq27x00_battery.ko echo bq27x00_battery >> /etc/modules
Keep in mind that it's Maemo kernel with SHR/FSO userspace (though AFAIK Maemo kernel is 100% open source, so it shouldn't be a problem ATM).
After installation...
...look at our TODO and try to do something :)
If you want to disable annoying flickering of keyboard LEDs while staying in R&D mode, boot to Maemo, edit /etc/pmconfig and change "sleep_ind 1" to "sleep_ind 0". After reboot keyboard won't blink anymore :)