I tried Sardine long time ago on my n800 and didn’t get it running. Now Maemo 4.0 Chinook alpha SDK is released and I decided to try again. I want to have a working n800 always with me, so I put the Chinook on the second partition of external mmc (first one is still a normal vfat for OGGs etc).
Mirroring the rootfs
I started by creating a new rootfs on mmc based on my current flash rootfs. I roughly followed the info in HowToBootRootFSFromMMC in Maemo wiki.
I installed wget, downloaded and extracted gnu tar and used it to create a copy to mmc.
apt-get install wget
wget http://repository.maemo.org/pool/maemo3.2/free/binary/tar_1.14-2.1osso_armel.deb
dpkg -x tar_1.14-2.1osso_armel.deb /root/tar
mkdir /mnt/dev-rootfs/
mount /dev/mmcblk1p2 dev-rootfs/
mount -t jffs2 /dev/mtdblock4 /mnt/rootfs/
/root/tar/bin/tar cf - -C /mnt/rootfs/ . | /root/tar/bin/tar xvf - -C /mnt/dev-rootfs/
Upgrading to Chinook
Next thing was to upgrade the mmc rootfs to Sardine. This time I followed SardineGettingStarted in Maemo wiki.
I chrooted to new rootfs since upgrading a running rootfs would be next to impossible:
chroot /mnt/dev-rootfs/ /bin/sh
mount -t proc proc /proc
mount -t sysfs sysfs /sys/
First I upgraded my current stuff. I had some problems with fmradio package, so I just removed it:
apt-get remove fmradio
apt-get update
apt-get upgrade
I had to export osso-af-startup version 1.46-2 from svn, compile and install it manually because the version in Sardine repo had a dependency to non-existent osso-product-info package. It’s downloadable from here.
I added the Sardine repo to my sources.list:
#maemo:name Sardine
deb http://repository.maemo.org/sardine unstable main non-free
Then I upgraded to Sardine nicely with apt-get (dbus tried to install /var/run directory conflicting with ssh..):
apt-get update
apt-get install hildon-application-framework
apt-get upgrade
dpkg --force-overwrite -i /var/cache/apt/archives/dbus_1.0.2-0osso10_armel.deb
The current Sardine repo seems still to have the same issue with maemo-launcher (see bug 952) that failed my first test with Sardine, but this time it’s already fixed in svn. So I exported maemo-launcher version 0.23-1 from svn, compiled and installed (downloadable from here). I installed the new missing dependencies with apt-get -f install
.
Clean up and exit:
umount /proc/
umount /sys/
exit
Installing bootmenu
Bootmenu is a must to conveniently choose which rootfs to boot.
Installation is pretty straightforward:
cd /root
wget http://fanoush.wz.cz/maemo/initfs_flasher.tgz
tar zxf initfs_flasher.tgz
cd initfs_flasher
./initfs_flash
Before the flashing part, I created a bootmenu.conf to include my chinook rootfs and my third rootfs. The default bootmenu is normally sufficient.
Reboot.
Booting to Chinook
I had trouble getting the Chinook to boot up. I got the Nokia logo and then a reboot. I booted to my flash rootfs, chrooted to mmc and installed syslog. Then I rebooted to mmc and then back to flash rootfs and examined the /var/log/syslog
on mmc. It revealed the maemo-launcher bug.
Lesson learned again: syslog is a must to have in n800 for debugging different issues.
Now I got the Chinook booting, without a theme though. After I said twice no to “Restore backup from mmc?” question and cancelled the phone wizard, I got an ugly desktop without theme. Selecting the Plankton theme fixed this issue.
Now I have working Chinook with my WLAN APs configured and my extra apps installed. Kilikali still plays my OGGs without problems :)
You have an error:
apt-get hildon-application-framework
should be
apt-get install hildon-application-framework
It’s not possible to mount proc and sysfs once chroot’d to the cloned OS, nor does your .deb install.
However, Sardine won’t install anymore because of the following error:
“/etc/apt # apt-get install hildon-application-framework
Reading package lists… Done
Building dependency tree… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
Since you only requested a single operation it is extremely likely that
the package is simply not installable and a bug report against
that package should be filed.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
hildon-application-framework: Depends: hildon-application-framework-packages but it is not going to be installed
E: Broken packages
”
Upgrading to Sardine has been failing this way for weeks[1].
1. http://www.gossamer-threads.com/lists/maemo/developers/26579?nohighlight=1#26579
Sorry for the missing “install” command. I’ll fix that..
The packages did install back then. It’s unlikely that an old package will install to a moving target much later. And at least the maemo-launcher issue was in the repo in the next day, iirc.
Afaik, mounting sysfs and proc in chroot should work in all environments just fine.
I haven’t tried installing chinook after that, so I don’t really know how it goes today.