diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/functions | 15 | ||||
-rwxr-xr-x | scripts/init-top/all_generic_ide | 5 | ||||
-rwxr-xr-x | scripts/init-top/framebuffer | 17 |
3 files changed, 29 insertions, 8 deletions
diff --git a/scripts/functions b/scripts/functions index 299c29c..f715e68 100644 --- a/scripts/functions +++ b/scripts/functions @@ -55,7 +55,7 @@ panic() maybe_break() { - if [ "${break}" = "$1" ]; then + if [ "${break:-}" = "$1" ]; then panic "Spawning shell within the initramfs" fi } @@ -238,7 +238,7 @@ parse_numeric() { /*) return ;; - *:*) + [0-9]*:[0-9]*) minor=${1#*:} major=${1%:*} ;; @@ -261,20 +261,21 @@ configure_networking() # networking already configured thus bail out [ -n "${DEVICE}" ] && [ -e /tmp/net-"${DEVICE}".conf ] && return 0 - # support ip options see linux sources Documentation/nfsroot.txt + # support ip options see linux sources + # Documentation/filesystems/nfsroot.txt case ${IPOPTS} in none|off) # Do nothing ;; ""|on|any) # Bring up device - ipconfig ${DEVICE} + ipconfig -t 180 ${DEVICE} ;; dhcp|bootp|rarp|both) - ipconfig -c ${IPOPTS} -d ${DEVICE} + ipconfig -t 180 -c ${IPOPTS} -d ${DEVICE} ;; *) - ipconfig -d $IPOPTS + ipconfig -t 180 -d $IPOPTS # grab device entry from ip option NEW_DEVICE=${IPOPTS#*:*:*:*:*:*} @@ -303,6 +304,6 @@ configure_networking() # Wait for queued kernel/udev events wait_for_udev() { - [ -x "$(command -v udevadm)" ] && return 0 + [ -x "$(command -v udevadm)" ] || return 0 udevadm settle ${1:+--timeout=$1} } diff --git a/scripts/init-top/all_generic_ide b/scripts/init-top/all_generic_ide index 28b519a..3274ee8 100755 --- a/scripts/init-top/all_generic_ide +++ b/scripts/init-top/all_generic_ide @@ -18,5 +18,10 @@ for x in $(cat /proc/cmdline); do all_generic_ide) modprobe ide-generic ;; + all_generic_ide=*) + if [ ${x#all_generic_ide=} ]; then + modprobe ide-generic + fi + ;; esac done diff --git a/scripts/init-top/framebuffer b/scripts/init-top/framebuffer index 21a6b19..0ed798e 100755 --- a/scripts/init-top/framebuffer +++ b/scripts/init-top/framebuffer @@ -72,11 +72,16 @@ for x in $(cat /proc/cmdline); do esac done -# Map command line name to module name +# Map command line name to module name and other tweaks case ${FB} in matroxfb) FB=matroxfb_base ;; +uvesafb) + # v86d requires /dev/zero and dev/mem, but udev haven't been started yet + [ -e /dev/zero ] || mknod -m 0666 /dev/zero c 1 5 + [ -e /dev/mem ] || mknod -m 0640 /dev/mem c 1 1 + ;; *) ;; esac @@ -85,3 +90,13 @@ if [ -n "${FB}" ]; then modprobe fbcon modprobe ${FB} ${OPTS} fi + +if [ -e /proc/fb ]; then + while read fbno desc; do + if [ $(($fbno < 32)) ]; then + mknod -m 0640 /dev/fb${fbno} c 29 ${fbno} + fi + done < /proc/fb +else + mknod -m 0640 /dev/fb0 c 29 0 +fi |