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

Bug#401916: Bug 401916: analysis and suggested solution



On Mon, Feb 19, 2007 at 11:36:29PM +0100, Michael Prokop wrote:
* David Härdeman <david@hardeman.nu> [20070219 22:15]:
+# Check for problematic devices
+problem=0
+
+# USB / FireWire
+if $(grep -q "usb\|ieee1394" /proc/devices); then
+	problem=1
+fi

How about:

if $(ps | grep -q usb-storage); then
  problem=1
fi

This way only boxes with usb-storage are affected by the booting
delay and not all the boxes with for example an usb input device
like an usb mouse.

I just verified my "ps...usb-storage"-code: works as intented and
booting from usb works fine then.

It won't work reliably because only the usb host driver is loaded once udevsettle exits (your screenshot at http://grml.org/initramfs/ shows this quite well). I'm leaning towards the rootdelay/rootdelaydev + documentation solution (see my mail to the BR a few minutes ago).

Let's see what maks says...

+if [ ${slumber} -gt 0 ]; then
+       log_begin_msg "Waiting for additional devices..."

The log_begin_msg call fails (don't ask me why, had no time for
further debugging and locating this bug costed me some minutes
already) and booting failed due to use of 'set -e' in the script
then. Changing the "log_begin_msg" to "echo" fixed the problem.

Mea culpa...the udev script needs to source /scripts/functions at the beginning to be able to use the log_begin_msg function

--
David Härdeman



Reply to: