I have an old system (eMachine 433MH) with a new external USB drive (which is actually faster than the internal hard drive that came with the box). It takes a few seconds for the Linux to bring it online, due in some part I think to a 5 second delay in kernel driver usb-storage (specifically usb.c). This console message gives a clue as to what is happening:
usb-storage: waiting for device to settle before scanning Once I installed uswsusp I noticed the boot process stopping because the 'stat' call only happens once (and fails), but almost immediately afterward the drive would come online. I worked up a patch that issues the stat call, sleeps for half a second then checks again. If it's successful it breaks out of the loop. I set the loop counter to 60 for a 30 second timeout. It takes about 5 to 10 seconds for the drive to come online on my system but again, my system is slow, mileage may vary. Here's the patch: --- resume.c.dpkg 2007-06-10 22:49:25.000000000 -0400 +++ resume.c 2007-06-11 23:02:33.000000000 -0400 @@ -731,6 +731,9 @@ struct stat stat_buf; int dev; int n, error = 0; + // Grace period variables + int loopcnt; + unsigned int usecs = 500000; // half a second page_size = getpagesize(); buffer_size = BUFFER_PAGES * page_size; @@ -755,6 +758,18 @@ if (splash_param != 'y' && splash_param != 'Y') splash_param = 0; + /* + * 30 second grace period to allow resume device + * to come online (i.e. external USB drives) + */ + for (loopcnt = 1; loopcnt <= 60; loopcnt++) + { + if (stat(resume_dev_name, &stat_buf) != 0) + usleep(usecs); // wait a half second + else + break; + } + while (stat(resume_dev_name, &stat_buf)) { fprintf(stderr, "resume: Could not stat the resume device file.\n" -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]