Fedora on an XO

As I mentioned before, one thing that I've been spending some time on is getting a “stock” Fedora to run on the OLPC XO hardware. Obviously there's not a CD drive, but there is a USB port and there is also an SD card slot. Which given the support in our live images for running off of such things, there seemed to be a bit of an obvious matchup.

There's just one (large-ish) problem. The XO is a Geode, so an i586 processor with cmov. So the stock i686 kernel on the live images definitely doesn't boot there. Unfortunately, neither does the i586 kernel. I'm working on tracking down what the relevant configuration difference is so that it can be fixed — interestingly enough, if you don't load an initrd, a Fedora i586 kernel can boot fine. So there's definitely something a little odd going on. If you have experience in debugging early boot of an XO and have any tips, leave a comment or catch me on IRC or send me mail :)

So, instead I've done a modified version of the main OLPC kernel with the help of sdziallas that includes squashfs and also turns on things like dm-snapshot which we need for live images.

That plus a pretty straight-forward image config and we can build a live image that boots into the GNOME desktop on the XO off of either an SD card or a USB stick. There are definitely still things to be fixed, though. To try to help some of that, I've created a tracking bug that can be used by those who have an XO and try running a Fedora live image on it.

Do you have an XO and are interested in trying it out? If so, first be sure that you have a developer key for your system. Then, you can download an image based on today's rawhide (debranded) from here. I've basically tested that it boots, logs in to the desktop and associates to my access point. Then gpk-update-icon fires up and we run out of memory for things. If you kill it quick enough, then you can fire up firefox and slowly do a little bit of other stuff.

Some things that are continuing to be worked on:

  • Having somewhere to swap would help a lot
  • Using the SD card/USB stick for your persistence instead of eating up valuable RAM
  • Persistent /home on the internal NAND (jffs2)
  • Looking at high memory usage things and helping to make them better
  • Fixing the standard kernel so that we can boot it on the XO
  • And if we do the last one then we can boot the standard live images, any of them, on the XO

Any help appreciated! Any bugs you find, please be sure to make them block the tracker so that we can keep up with them accordingly.

As for the questions about what the end goal is here — ultimately, I'd like to have any Fedora spin working on the XO just like it works on lots of other hardware. For Fedora 10, this may be a stretch (although I'm going to land any small changes that can be identified in that timeframe even though it's not a feature and we're at feature/beta freeze). But for Fedora 11, it should certainly be doable.

10 thoughts on “Fedora on an XO”

  1. Re: olpc.fth

    It gets created by livecd-iso-to-disk when run with –xo. But basically

    Boot script for SD boot
    ” $args” to boot-file
    ” sd:syslinuxinitrd0.img” to ramdisk
    unfreeze
    boot sd:syslinuxvmlinuz0

    Replace sd: with u: for USB instead of SD and set args appropriately.

  2. bugs reported

    So I tried this out using an SD card and it went fairly well. Fedora looks nice on the XO – fonts are big and readable by default. WPA wireless worked fine. Sound and suspend were broken. Firefox was a little slow for daily use at this point.

    I filed a few bugs, not glued to the tracker yet (cuz I got yelled at by qa last time I did that myself):

    https://bugzilla.redhat.com/show_bug.cgi?id=462515 Pulseaudio failing to start. [Also the mic led is stuck on from early boot.]
    https://bugzilla.redhat.com/show_bug.cgi?id=462518 Pm-suspend doesn’t turn off display.
    https://bugzilla.redhat.com/show_bug.cgi?id=462512 Kernel oops at boot.
    https://bugzilla.redhat.com/show_bug.cgi?id=462531 Dialog buttons blacked out.

    If this kind of user testing is useful at all I’d be happy to keep trying rawhide livecds from time to time on my XO. I don’t want to clutter bugzilla with a bunch of Capt. Obvious failure pile.

    –jspaar

  3. Re: bugs reported

    These are exactly the sorts of things that are being looked for. Thanks a lot for reporting them. I went and stuck them on the tracker. But feel free to do so yourself in the future. And also, get on fedora-olpc-list where I’ll definitely be announcing any updated builds (which may or may not get blogged)

    Thanks!

  4. Re: livemedia not booting

    Assuming that you installed the olpc-gnome.iso onto the boot media using a recent livecd-tools with the –xo option…
    And assuming that the B4 version isn’t an obstacle…

    Not detailed in Jeremy’s instructions is that you have to either:
    A) hit Esc during each boot and then type a boot command at the prompt
    such as boot u:olpc-usb.fth (for USB) or boot sd:olpc-sd.fth (for SD)
    [You won’t be able to get the prompt unless your dev key is installed.]

    OR

    B) On the boot media (after using live-cdtools):
    $ cd /your/mounted/bootmedia
    $ mkdir boot
    $ cp olpc-usb.fth boot/olpc.fth (for USB) or
    $ cp olpc-sd.fth boot/olpc.fth

    Or you could edit the boot/olpc.fth on the nand to let you choose what source to boot. See: http://wiki.laptop.org/go/OFW_FAQ

    –jspaar

Comments are closed.