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

From: David N. Welton
Date: Fri May 28 2004 - 04:08:57 EST


[ 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.

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

Thanks for comments/constructive criticism, and thanks for reading,
--
David N. Welton
davidw@xxxxxxxxxxx
-
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/