summaryrefslogtreecommitdiff
path: root/scripts/init-top
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/init-top')
-rwxr-xr-xscripts/init-top/all_generic_ide4
-rwxr-xr-xscripts/init-top/blacklist25
-rwxr-xr-xscripts/init-top/framebuffer102
3 files changed, 27 insertions, 104 deletions
diff --git a/scripts/init-top/all_generic_ide b/scripts/init-top/all_generic_ide
index 3274ee8..e9539d8 100755
--- a/scripts/init-top/all_generic_ide
+++ b/scripts/init-top/all_generic_ide
@@ -16,11 +16,11 @@ esac
for x in $(cat /proc/cmdline); do
case ${x} in
all_generic_ide)
- modprobe ide-generic
+ modprobe ata_generic all_generic_ide=1
;;
all_generic_ide=*)
if [ ${x#all_generic_ide=} ]; then
- modprobe ide-generic
+ modprobe ata_generic all_generic_ide=1
fi
;;
esac
diff --git a/scripts/init-top/blacklist b/scripts/init-top/blacklist
new file mode 100755
index 0000000..2164906
--- /dev/null
+++ b/scripts/init-top/blacklist
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+PREREQ=""
+
+prereqs()
+{
+ echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+ prereqs
+ exit 0
+ ;;
+esac
+
+# sanity check
+[ -z "${blacklist}" ] && exit 0
+
+# write blacklist to modprobe.d
+IFS=','
+for b in ${blacklist}; do
+ echo "blacklist $b" >> /etc/modprobe.d/initramfs.conf
+done
diff --git a/scripts/init-top/framebuffer b/scripts/init-top/framebuffer
deleted file mode 100755
index 0ed798e..0000000
--- a/scripts/init-top/framebuffer
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/sh
-
-PREREQ=""
-prereqs()
-{
- echo "$PREREQ"
-}
-case $1 in
-# get pre-requisites
-prereqs)
- prereqs
- exit 0
- ;;
-esac
-
-
-# The options part of the kernel "video=" argument (i.e. everyting
-# after "video=<fbdriver>:") has very inconsistent rules.
-#
-# Generally the following applies:
-# 1) options are comma-separated
-# 2) options can be in either of these three forms:
-# <arg>=<value>, <arg>:<value>, <boolean-arg>.
-# 3) the "mode" option has the form <xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m]
-# and may or may not start with "mode="
-#
-# When the options are used with modules, they need to be space-separated
-# and the following conversions are needed:
-# <arg>:<value> -> <arg>=<value>
-# <boolean-arg> -> <boolean-arg>=1
-# <modevalue> -> mode=<modevalue>
-parse_video_opts()
-{
- local OPTS="$1"
- local IFS=","
-
- # Must be a line like video=<fbdriver>:<opt1>,[opt2]...
- if [ "${OPTS}" = "${OPTS%%:*}" ]; then
- return
- fi
- OPTS="${OPTS#*:}"
- for opt in ${OPTS}; do
- # Already in the "<arg>=<value>" form
- if [ "${opt}" != "${opt#*=}" ]; then
- echo -n "$opt "
- # In the "<arg>:<value>" form
- elif [ "${opt}" != "${opt#*:}" ]; then
- echo -n "${opt%:*}=${opt#*:} "
- # Presumably a modevalue without the "mode=" prefix
- elif [ "${opt}" != "${opt#[0-9]*x[0-9]}" ]; then
- echo -n "mode=$opt "
- # Presumably a boolean
- else
- echo -n "${opt}=1 "
- fi
- done
-}
-
-FB=""
-OPTS=""
-
-for x in $(cat /proc/cmdline); do
- case ${x} in
- vga=*)
- FB="vesafb";
- OPTS="";
- ;;
- video=*)
- FB=${x#*=}
- FB="${FB%%:*}"
- OPTS="$(parse_video_opts "${x}")"
- esac
-done
-
-# 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
-
-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