Talk:Ubuntu Lucid on OLPC XO

From OLPC
Revision as of 08:13, 26 April 2010 by ~airwave209gt (talk | contribs) (Some tips on preparing the disk image)
Jump to navigation Jump to search

It works!! Just following the instructions, more or less, gave me a running system.

A few details:

There need to be a few more "sudo" commands. I am not sure if it is needed for depmod, but it is certainly needed for the following "ln".

 depmod 2.6.31_xo1-xxxxxxx
 ln -s /lib/firmware/libertas/usb8388_v9.bin /lib/firmware/usb8388.bin

I used qemu, using the USB device as HDA, and with additional memory -- when I tried to install everything using 256MB of RAM, the install would always crash. Here are my two qemu commands, the first one for booting from the cdrom (to be done initially), the second for booting from the hard disk. Pay attention to the stuff in parentheses -- you really do need to check which device your usb drive is on (I did it with

 ls -l /dev/disk/by-id/

you may have other methods), and the tftp option was needed to load the develop.sig, which I had on a different device:

 sudo qemu -hda /dev/sdc (check) -cdrom ubuntu-10.04-beta2-desktop-i386.iso -m 512 -boot d -net nic -net user
 sudo qemu -hda /dev/sdc (check) -m 512 -boot c -net nic -net user(,tftp=/home/user/olpc)

to use these, remove the "(check)" (only after checking! :-), and, if you need to transfer files from the host, remove the parentheses around the tftp option, e.g. -net user,tftp=/home/foo/xyz, where the path indicates the root of the tree accessible with the tftp command. Once you have booted ubuntu, you also need to

 sudo apt-get install tftp

for this to work.

Finally, make sure your device really does have a label OLPCRoot. I don't think that is emphasized enough in the instructions.

With these considerations, the install actually went very smoothly. I am just afraid my 256MB OLPC may be too small for ubuntu lucid.

Two things that don't work: the wireless network and the battery icon. Battery is not such a big deal. For the wireless network, I may need a new driver, because no wireless networks are detected.

I hope this helps others!

Edo 19:05, 24 April 2010 (UTC)

Thanks for your input! I added the missing sudos, and tried to emphasize the disk label issue a little more.
As for the wireless, I had the same problem until i figured out the firmware issue. The driver should already be there. What does "dmesg | grep 8388" say?
I'm aware that the battery indicator doesn't work; I'm not sure that the XO provides this information by ACPI. In my previous Ubuntu system, I wrote a shellscript that dug out the battery percentage from somewhere in /proc, and displayed it in a custom text-based taskbar widget. Other similar things, such as screen brightness and mapping of the directional/game buttons also need some work.
I'll look into this when I revise the instructions for the stable 10.04 version, which will be released soon.
-- Maxxflow 19:53, 24 April 2010 (UTC)

Thank you for your quick response!

"dmesg | grep 8388":

 [    3.029396] usb 1-1: firmware: requesting usb8388.bin
 [    3.072286] usb8xxx: firmware usb8388.bin not found

The link in /lib/firmware seems to be correct. There is nothing under /lib/modules that matches 8388 (I used "find"). FYI, here is a list of loaded modules (from lsmod):

 Module                  Size  Used by
 sg                     18184  0 
 usb_storage            21392  1 
 usb_libusual            7228  1 usb_storage
 mousedev                6600  0 
 usb8xxx                10468  0 
 libertas              116232  1 usb8xxx
 lib80211                2272  1 libertas
 ohci_hcd               14992  0 
 psmouse                16448  0 
 serio_raw               2520  0 
 ehci_hcd               23556  0 
 usbcore                83740  6 usb_storage,usb_libusual,usb8xxx,ohci_hcd,ehci_h
 cd
 cs5535_gpio             1552  0 
 cafe_ccic              12272  0 
 ecb                     1012  0 
 aes_i586                6568  0 
 aes_generic            25428  1 aes_i586


uname -a gives 2.6.31_xo1-20100422.1905.olpc.351d67a #1 PREEMPT (hand-typed, so may have errors).

Does this give enough clues? I even tried rebooting under qemu and "sudo apt-get install libertas-firmware", and that did not fix it.

Edo 21:25, 24 April 2010 (UTC)

Hmm. Try "sudo ln -s /lib/firmware/libertas/usb8388_v9.bin /lib/firmware/libertas/usb8388.bin". If that doesn't work, try doing the symlinking in the initrd's firmware directory as well. Use the instructions on how to unpack and re-pack the initrd from my installation guide. Tell me if you need more instructions on this!
-- Maxxflow 21:36, 24 April 2010 (UTC)

I repacked the initrd, adding the command

 cp -r /lib/firmware/libertas lib/firmware/

after copying the modules but before constructing /boot/initrd.img-xo.

Still no success. Same dmesg, no device.

Edo 22:39, 24 April 2010 (UTC)

Eureka! (meaning "I found it!")

the usb8388.bin has to be under lib/firmware in the initrd, not (just?) under lib/firmware/libertas/

now the wireless is working!

Edo 23:06, 24 April 2010 (UTC)

That's odd. I just repacked my initrd *without* any of those symlinks to confirm this issue. I now only have /lib/firmware/usb8388.bin in my root. But it still works. When I delete this one symlink that I now have, I get the symptoms. I'm doing a system upgrade now, we'll see what happens after that. What kernel version are you using? (date, id and everything)
I noticed that your module is loaded very early in the boot process, around time "3" according to your dmesg, as compared to around 26 for me. It definitely seems like your system loads the module in the initrd, while my system loads it later. I'll change the instructions to include the symlink in the initrd for now.
-- Maxxflow 23:36, 24 April 2010 (UTC)

Some tips as I worked:

- You may do

 sudo apt-get install xserver-xorg-video-geode xserver-xorg-video-vesa

before installing the desktop environment (no matter ubuntu-netbook, or lubuntu-desktop which I used), so you don't need to install all other display card drivers you don't need, except the Geode and VESA drivers, for starting X in XO-1 and the virtual machine respectively.

- In addition to create /boot/olpc.fth by hand, you may find the boot script as used on DebXO useful, that you don't need to hard-code the device (u:\ or sd:\) you will boot Ubuntu from.

- Techniques as used by some eeePC users to reduce unnecessary flash writes, e.g. mounting /tmp as tmpfs, specifying noatime option on mounting the root partition, may also be useful to us.

This is how my /etc/fstab looks like (I used lucid as my volume label):

 LABEL=lucid / ext3 defaults,noatime 1 1
 tmpfs /tmp tmpfs defaults 0 0
 tmpfs /var/log tmpfs defaults 0 0
 none /ofw promfs defaults 0 0

It is safe to skip mounting /ofw unless you need to, and safe to skip mounting /var/log if you want to keep the logs.

--airwave209gt 08:13, 26 April 2010 (UTC)