diff options
author | Paul Sokolovsky <pmiscml@gmail.com> | 2008-03-08 18:37:36 +0000 |
---|---|---|
committer | Paul Sokolovsky <pmiscml@gmail.com> | 2008-03-08 18:37:36 +0000 |
commit | c00dd1a2ce70e2d41b2b4555249b28ad2495e195 (patch) | |
tree | 82fb80823a9b993099cde601da38250e41adf3b7 /packages/initrdscripts/files/init.sh | |
parent | 03727f56ee88df4ea41213414c1f49c00984cf34 (diff) |
initramfs-uniboot: Add support for early-init plugins.
* Extend plugin protocol: plugins matching pattern '0*' are early-init,
executed ASAP after boot, before kernel command and block devices are scanned.
And thus, they can affect parsing of kernel command line (by overriding $CMDLINE)
or detection of block devices (e.g. by loading additional modules).
Diffstat (limited to 'packages/initrdscripts/files/init.sh')
-rw-r--r-- | packages/initrdscripts/files/init.sh | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/packages/initrdscripts/files/init.sh b/packages/initrdscripts/files/init.sh index 8b9fe12429..e250e3928a 100644 --- a/packages/initrdscripts/files/init.sh +++ b/packages/initrdscripts/files/init.sh @@ -25,7 +25,7 @@ dev_setup() } read_args() { - CMDLINE=`cat /proc/cmdline` + [ -z "$CMDLINE" ] && CMDLINE=`cat /proc/cmdline` for arg in $CMDLINE; do optarg=`expr "x$arg" : 'x[^=]*=\(.*\)'` case $arg in @@ -40,7 +40,7 @@ read_args() { } load_modules() { - for module in $MODULE_DIR/*; do + for module in $MODULE_DIR/$1; do echo "initramfs: Loading $module module" source $module done @@ -60,6 +60,7 @@ fatal() { echo "Starting initramfs boot..." early_setup +load_modules '0*' read_args if [ -n "$rootdelay" ]; then @@ -69,7 +70,8 @@ fi dev_setup -load_modules +load_modules '[1-9]*' + [ -n "$BOOT_ROOT" ] && boot_root fatal "No valid root device was specified. Please add root=/dev/something to the kernel command-line and try again." |