aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-07-06 10:02:48 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-07-06 10:02:48 +0000
commit9f0ccdcc8bf12e052f95ee429904052b28bc5f67 (patch)
treeb6821d87b33bcfd3259fc744839d0234eec20a5a
parent805d5d7e04b27223f2ed23f940728dada7538dc4 (diff)
downloadmkinitfs-9f0ccdcc8bf12e052f95ee429904052b28bc5f67.tar.bz2
mkinitfs-9f0ccdcc8bf12e052f95ee429904052b28bc5f67.tar.xz
init: we add a 1 sec delay to wait for slow usb-1 controllers
-rwxr-xr-xinitramfs-init.in29
1 files changed, 19 insertions, 10 deletions
diff --git a/initramfs-init.in b/initramfs-init.in
index 702c32d..aa251b7 100755
--- a/initramfs-init.in
+++ b/initramfs-init.in
@@ -128,6 +128,24 @@ rc_add() {
ln -sf /etc/init.d/$1 $sysroot/etc/runlevels/$2/$1
}
+# we have issues with some slow usb 1 hosts so we add 1 second delay
+# with possibility to increase delay at boot prompt with usbdelay=<sec>
+find_ovl_dev() {
+ local n i
+ # look for apkovl
+ for n in $(seq 0 ${KOPT_usbdelay:-1}); do
+ # wait for usb to settle if needed
+ wait_usb
+ for i in usb floppy cdrom; do
+ mount /media/$i 2>/dev/null || continue
+ ovl=$(find_ovl /media/$i)
+ [ -f "$ovl" ] && return
+ umount /media/$i 2>/dev/null
+ done
+ sleep 1
+ done
+}
+
# gotta start from somewhere :)
echo "Alpine Init $VERSION"
@@ -258,16 +276,7 @@ if [ -n "$KOPT_root_size" ]; then
fi
mount -t tmpfs $root_opts tmpfs $sysroot
-# wait for usb to settle if needed
-wait_usb
-
-# look for apkovl
-for i in usb floppy cdrom; do
- mount /media/$i 2>/dev/null || continue
- ovl=$(find_ovl /media/$i)
- [ -f "$ovl" ] && break
- umount /media/$i 2>/dev/null
-done
+find_ovl_dev
if ! [ -f "$ovl" ]; then
ovl=$(find_ovl $ALPINE_MNT)
fi