[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: using bootcd with usb cdrw drive



On Thu, Oct 25, 2001 at 06:26:21AM -0700, David Roundy wrote:
| On Wed, Oct 24, 2001 at 10:31:21PM +0200, Debian User Jean-Baptiste Note wrote:
| > Well, i'm sorry i'm really not an expert, but maybe you should
| > try a kernel with a initrd option.
| > With a initrd, you'll get somewhat of a prompt and the ability
| > to modprobe any module you like, it could help you to debug
| > your problem.
| 
| Actually, after some rather extensive web search, I found out that
| generally one cannot load USB devices as root from the kernel without
| additional trickery.  The problem is that the usb devices are detected
| asynchronously, so there is a race as to whether they are detected before
| the root filesystem is mounted, a race which on my computer they always
| lose.  So the trick will be to introduce some sort of delay before mounting
| the root filesystem.  I believe one could do this with an initrd as you
| suggest (either putting a delay script or just waiting at the prompt
| manually).  

You have now cleared the first hurdle -- figuring out _why_ it doesn't
work.

I think you should study the initrd stuff some more.  One purpose of
it is to allow modules to be loaded before the kernel mounts the root
system.  You could do this for the USB module, then the CD will be
noticed.  The other purpose is to allows scripts to run to set up some
stuff first.  You can add a script that will sleep until it sees the
CD drive exists into the initrd and have that run before the root fs
is mounted.

Something like


while [ ! -f /dev/cdroms/cdrom0 ] ; do sleep 2 ; done


This will iterate until the device file exists.  If you enable devfs,
then the device file will exist only when the device itself exists.
The loop then sleeps for 2 seconds, rather than pegging the CPU (known
as a "busy wait").


I personally don't know enough to be able to create an initrd, but I
think that is what you want.  The only other problem is that the
initrd and kernel need to be loadable by your boot loader, or else
none of the process can start.  You may need a separate floppy for
booting, then have everything else (root fs) on the CD.

HTH,
-D



Reply to: