Booting from USB floppy?

From: Chris Hanson (cph@zurich.ai.mit.edu)
Date: Sat Aug 11 2001 - 22:12:52 EST


I have been trying to build Debian 2.2 boot/root floppies for the HP
OmniBook 500 laptop, which (in some configurations) has only a USB
floppy drive. I've been unable to get the kernel to load the root
floppy. These tests were done using Linux 2.4.6.

At this point, I think this isn't possible without some real work in
the kernel. I'd like to get some feedback about whether this is a
correct deduction. To that end, here is my analysis.

1. The function mount_root() in "fs/super.c" specially detects floppy
   devices and handles them differently than other devices that might
   be specified by the "root=" parameter, such as "root=/dev/sda" in
   this case. So handling a floppy drive that appears to be a SCSI
   floppy looks like it can't be done without patching that code.

2. If that is worked around, there is a further problem: the USB
   storage driver sets up the SCSI translator asynchronously. Prior
   to this, the device "/dev/sda" doesn't exist, which means there's a
   race condition between the USB-SCSI initialization and the boot
   process accessing the root device. I discovered this by specifying
   "root=/dev/sda", and seeing that the kernel didn't initialize the
   USB floppy device before it tried to open "/dev/sda", and failed
   with a "no such device" error. So fixing this would also requiring
   synchronizing the race -- but it's not clear how you'd figure out
   that synchronization would even be needed here.

Does this seem like a reasonably correct analysis of the situation?
Is it easier than I think? Is anyone else working on booting from USB
floppies?

Please CC me to any replies, since I don't read this list.

TIA,
Chris
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Aug 15 2001 - 21:00:40 EST