Re: boot from usb flash - wake boot process when disk is ready?

From: Kalin KOZHUHAROV
Date: Fri May 28 2004 - 04:46:05 EST


David N. Welton wrote:
[ Please CC replies to me - thanks! ]

Hi,

We're toying around with the idea of booting an embedded system off of USB flash (pros, cons, and advice about this would be appreciated, by the way), and I had a look at several of the existing patches to do this without going through the process of creating an initrd image. That adds complexity and time to the boot process that we would prefer to avoid, although it appears that the kernel folks in the first thread cited are in favor of initrd....

http://www.uwsg.iu.edu/hypermail/linux/kernel/0301.3/1182.html

This mentions a couple of patches, both the "keep looping until it works" one, which I couldn't get working with 2.6.6, and Willy Tarreu's "wait a given period of time before continuing" patch:

http://www.uwsg.iu.edu/hypermail/linux/kernel/0405.0/0224.html

I don't think either of those approaches are particularly elegant... although I'm sure my own efforts are good for a snort as well.
I tried this with 2.6.6 and modified it a bit, but to no avail.
It seems that the sd driver initializes the disk long before the wait
and does not bother anymore.

In genhd.c I wake up a waitqueue when the disk comes on line. The init process waits on this before going on with prepare_namespace(). Ideally, this would look and make sure it's the right disk, that selected for the root fs:-) Not being very familiar with the 'lay of the land' in the kernel, I declared the wait queue as a global in genhd.c. The thing I don't like about this approach is that it builds a connection between two bits of the kernel that seem separate... maybe (ok, quite probably) there is a better/cleaner way of doing this?

Patch is at: http://dedasys.com/freesoftware/files/usb-wakeup.patch

Looks OK to me to try, but I am far from expert here.
Unfortunately I cannot test it in the next few days :-(
May be later.

I am in a search for non-initrd USB-booting as well...

Keep the discussion on LKML as well.

Kalin.

--
||///_ o *****************************
||//'_/> WWW: http://ThinRope.net/
|||\/<" |||\\ ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/