diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts index f14333a..4da6968 100755 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -410,17 +410,23 @@ setup_hotplug() { fi } -check_slowusb() { +setup_slowusb() { + # slowusb already set? + if [ "${DO_slowusb}" = "1" ] + then + return + fi + local usb_storage_dir="/sys/bus/usb/drivers/usb-storage" if [ ! -d "${usb_storage_dir}" ] then + # no automated slowusb required. no usb-storage devices attached. return fi - [ "${DO_slowusb}" ] || \ for x in "${usb_storage_dir}"/* do [ -d "${x}" ] && [ "${x}" != "${usb_storage_dir}/module" ] \ - && { FORCE_slowusb="1" ; break ; } + && { DO_slowusb="1" ; break ; } done } @@ -428,13 +434,8 @@ start_dev_mgr() { if [ "${KV_2_6_OR_GREATER}" ] then cd /sys - [ "${DO_slowusb}" ] && sdelay - check_slowusb - [ "${FORCE_slowusb}" ] && sdelay good_msg 'Activating mdev' runmdev - [ "${DO_slowusb}" ] || \ - [ "${FORCE_slowusb}" ] && sdelay cd / fi } @@ -881,12 +882,12 @@ startLUKS() { sdelay() { # Sleep a specific number of seconds if SDELAY is set otherwise only sleep - # 1 second - if [ -n "${SDELAY}" ] + # 3 seconds, which is a much better default than 1 second (previous default) + if [ "${SDELAY}" ] then sleep ${SDELAY} else - sleep 1 + sleep 3 fi } diff --git a/defaults/linuxrc b/defaults/linuxrc index d873450..1b2f3c2 100755 --- a/defaults/linuxrc +++ b/defaults/linuxrc @@ -289,6 +289,11 @@ fi # Delay if needed for USB hardware sdelay +# Setup slow USB bits +setup_slowusb +# if doslowusb is passed, pause other 10 seconds +[ "${DO_slowusb}" ] && sleep 10 + # Start device manager start_dev_mgr @@ -675,10 +680,6 @@ then fi done - if [ "${DO_slowusb}" ] || [ "${FORCE_slowusb}" ] - then - sleep 10 - fi mkdir initramfs proc tmp sys 2>/dev/null chmod 1777 tmp @@ -694,11 +695,6 @@ then # Let Init scripts know that we booted from CD export CDBOOT CDBOOT=1 - check_slowusb - if [ "${DO_slowusb}" ] || [ "${FORCE_slowusb}" ] - then - sleep 10 - fi else if [ "${USE_UNIONFS_NORMAL}" = '1' ] then