OpenBSD Journal

Developer Blog: uwe: Zaurus C3200 Supported

Contributed by marco on from the dept.

Uwe Stuehler added another Zaurus to the supported list! As of -current OpenBSD supports the C3200 model. Short story:
  - 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.

Get your own!

(Comments are closed)

  1. By Anonymous Coward ( on

    Good work Uwe.

    1. By Anonymous Coward ( on

      You have however, made it harder for me to resist upgrading from my C3000 to a C3200

      1. By Jeff S. ( on

        I know exactly what you mean...
        Although I can probably hold myself back for awhile, seeing as I still got a C3100..

        1. By Anonymous Coward ( on

          Can always stick a bigger microdrive into the Zaurus. That's the only difference these days anyway. Now if they'd add some more RAM, then it might be worth upgrading.

          1. By Andy ( on

            Check again, it's still 64Mb SDRAM, it has 128Mb of Flash memory but you won't see that when running OpenBSD.

  2. By Anonymous Coward ( on

    What's a sane linux distro, and where do you get it from?

    1. By djm@ ( on

      I think Openwall comes closest.

      1. By Anonymous Coward ( djm@ on

        oops, that URL is borked, try again: Openwall

    2. By Anonymous Coward ( on

      Perhaps he meant relatively sane. ;)


Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]