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
}
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
}
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
}
# 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
fi
done
- if [ "${DO_slowusb}" ] || [ "${FORCE_slowusb}" ]
- then
- sleep 10
- fi
mkdir initramfs proc tmp sys 2>/dev/null
chmod 1777 tmp
# 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