Contributed by marco on from the dept.
- Room was made for our boot loader in Linux' root filesystem by moving some stuff off of it to another filesystem. Different stuff is moved on the C3200 than on the C3100. - To work around a known problem in zbsdmod we have to copy the ramdisk kernel that gets loaded when you tip on the Puffy icon in Qtopia over to a partition on the hard drive.The long story...
Before my first attempt to install the boot loader package, I carefully checked whether the assumptions in the post-install script for that package would still hold or not, to avoid making any irreversible changes too early.
Sharp's filesystem layout for the Zaurus has always been a total mess, with hundreds of symlinks pointing back and forth between different filesystems and nothing is where it would be in a sane Linux distribution.
Sharp has changed the filesystem layout with every new model, which even has some benefits (apart from making the symlink maze ever more complex). On the C3100 and C3200 there is not much critical data left on the hard drive, so with some additional effort one could probably use the whole disk for OpenBSD and might still be able to run Linux and even Qtopia from flash.
Anyway, the C3200 had the same problem as the C3100 and one more.
Part one: We have to modify the startup scripts to intercept control during the Linux startup process. So we copy our boot loader files (zbsdmod.o, zboot and rc.zboot) to the root filesystem, which on all three Zaurus models happens to reside in a JFFS2 flash filesystem. On the C3100 and C3200 however, this filesystem is completely full and we have to make room in it before we can copy our stuff over. Nothing had to be moved off of the root filesystem on the C3000, since most data was still on the internal hard drive.
Part two: We have a weird bug in zbsdmod that makes it impossible to boot our kernel when it has been loaded from a flash filesystem. Our boot loader package installs the ramdisk kernel in /usr/local/OpenBSD, but on the C3200 this directory is now in flash. I suppose the zbsdmod bug is a VM issue of some sort, but instead of fixing zbsdmod (which we intend to replace sooner or later with a standalone boot loader) I decided that it was more productive for now to work around the problem by copying our ramdisk kernel to a hard disk partition, where zbsdmod can load it from.
(Comments are closed)