From 51e0b14044fd2ba27782e2267e99fab49f7a416d Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Wed, 12 Jan 2011 00:12:25 +0100 Subject: [PATCH] slowusb: ease the code in order to reduce entropy, one place for one thing. There were several places where a mixture of sdelay and "sleep 10" were called without worrying too much, resulting in slower boot time, mainly. This commit should fix the mess and make some order in the slowusb saga. --- defaults/initrd.scripts | 23 ++++++++++++----------- defaults/linuxrc | 14 +++++--------- 2 files changed, 17 insertions(+), 20 deletions(-) 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 -- 2.26.2