11.2.0 XO-1 boot from USB or SD doesn't work for me
dufkaf at gmail.com
Wed Aug 24 08:03:25 EDT 2011
previous OS versions booted fine without any change when same build
files were in internal jffs2 or on SD card or on USB stick. With 11.2.0
it look like this no longer works.
When I boot from USB or SD slot the initrd prints many lines of
something similar to 'chdir to /lib/modules failed' and finally
something like 'Root device not found, sleeping forever'.
When examining initrd files in /boot I found that there are actually two
initial ramdisks, one initrd below 2MB size and one actrd having ~5MB.
The 5MB one does have /lib/modules inside while the normal initrd does not.
When replacing initrd by actrd the chdir /lib/modules error message is
gone, and I see usb modules inserted and I see mass storage module
detecting the usb device but it printed another messages about
"scsi_wait_scan module not found" and again root device not found.
I am using SD card with single ext3 partition with fs label "OLPCRoot"
in usb card reader or directly in SD slot (just like it works with
previous OS versions).
Then I extracted initrd with gzip and cpio, copied /lib/modules from
actdr, repacked and can confirm the original initrd code behaves exactly
the same as actrd one.
Then I found file cmdline/20olpc-boot-cmdline.sh inside intrd that
checks boot device from ofw and hardcodes root=/dev/sda2 with this code:
if [ -z "$root" ]; then
# if no root device was specified, use OFW bootpath to find root
/pci/usb@*) root="/dev/sda2" ;; # external USB, assume
So I changed sda2 to sda1 but it still does not boot with same message -
root device not found. Sorry that I don't have exact error messages but
the device does not boot so I cannot copy them directly.
Currently I am out of ideas.
Is booting from SD or USB on xo-1 supposed to work with 11.2.0? (looks
like it is not)
Anyone knows the boot procedure inside initrd and can point me to place
that needs fixing so usb or sd card boot works with 1.2.0?
BTW, I have a need for both ways, my son's xo-1 boots older OS from SD
card (with swap file) and I have another xo-1 with broken CAFE chip that
boots (older OS) from USB only and mostly works except internal NAND, SD
slot and camera - 3 features done by semi-dead CAFE chip. The only
user-visible issue is camera not working in activities and I can live
with that :-) Semi-working means that ocassionally the CAFE chip works
(based on phase of the moon) but mostly the kernel prints some error
messages at boot when probing PCI devices. When it works it actually
boots from internal NAND just fine but the system hangs few minutes or
hours later when CAFE chip decides to go away again.
More information about the Devel