1 (edited by shoragan 2008-02-03 08:32:09)

Topic: OpenEmbedded progress

Daniel and I tried to find some way to automatically select while booting whether to use the original cramfs
or a rootfs on usb-flash. This would make it easy to try a different rootfs and go back to the default Chumby
just by unplugging the usb-flashdrive.

This is what we've tried so far...

1. Use OE-built kernel and modules:
We've rebuilt the cramfs with our own modules (with GCC 4.2.2 and 4.1.2), but it seems that the original software needs some API in /proc which is not available in the upstream rt73 releases. So the userspace fails to work with this kernel and rt73 driver.

2. Use an OE-built kernel and kexec the original kernel with unmodified cramfs:
We've backported kexec support into 2.6.16-chumby-1.2, but it fails to boot correctly (some problem with ATAGs or perhaps the device state after another kernel has already been started). This would be a nice solution because when running without usb-flash, the system would be identical to the default.

We could try this:

1. Integrate the Chumby toolchain into OE and use it for everything. This would probably work, but is not really satisfactory.

2. Patch the upstream rt73 driver with the Chumby /proc-api. This would be nice, but without the revision history it is error-prone to try and untangle the changes from the released tarballs (especially because a c code beautifier has been used on the chumby-rt73-tarball, which makes the diff very noisy).

3. If we had the patch queue for the kernel, too. We could go to a newer kernel. This would allow us to use the mac80211 based rt73 stack. Or perhaps have working kexec support. In the long term this should allow to get some of these kernel changes and drivers upstream.