diff -Nurp genkernel-3.4.9_pre2.orig/generic/initrd.scripts genkernel-3.4.9_pre2/generic/initrd.scripts --- genkernel-3.4.9_pre2.orig/generic/initrd.scripts 2007-08-30 20:27:56.000000000 +0200 +++ genkernel-3.4.9_pre2/generic/initrd.scripts 2007-09-08 18:28:38.000000000 +0200 @@ -365,11 +365,27 @@ start_dev_mgr() { then cd /sys [ "${DO_slowusb}" ] && sleep 10 + + # Smarter control + [ "${DO_slowusb}" ] || \ + for dir in /sys/bus/usb/drivers/usb-storage/*; do + if [ -d "${dir}" ] + then + FORCE_slowusb="1" + fi + done + [ "${FORCE_slowusb}" ] && sleep 10 + kill_devfsd good_msg 'Activating mdev' # runUdev runmdev [ "${DO_slowusb}" ] && sleep 20 + + # Smarter control + [ "${DO_slowusb}" ] || \ + [ "${FORCE_slowusb}" ] && sleep 20 + cd / else good_msg 'Activating devfs' diff -Nurp genkernel-3.4.9_pre2.orig/generic/linuxrc genkernel-3.4.9_pre2/generic/linuxrc --- genkernel-3.4.9_pre2.orig/generic/linuxrc 2007-09-08 18:27:55.000000000 +0200 +++ genkernel-3.4.9_pre2/generic/linuxrc 2007-09-08 18:35:23.000000000 +0200 @@ -694,10 +694,20 @@ then # Let Init scripts know that we booted from CD export CDBOOT CDBOOT=1 + + # Smarter control + for dir in /sys/bus/usb/drivers/usb-storage/*; do + if [ -d "${dir}" ] && [ "${dir}" != "/sys/bus/usb/drivers/usb-storage/module" ] + then + FORCE_slowusb="1" + fi + done + if [ "${DO_slowusb}" ] || [ "${FORCE_slowusb}" ] then sleep 10 fi + else if [ "${USE_UNIONFS_NORMAL}" -eq '1' ] then