#
# based on mkinitrd from RedHat
-RCSID='$Id: geninitrd,v 2.12 2002/01/29 11:19:51 malekith Exp $'
+RCSID='$Id: geninitrd,v 2.13 2002/02/19 14:43:13 wiget Exp $'
PATH=/sbin:$PATH
export PATH
COMPRESS="yes"
FS="rom"
-USEBSP="yes"
USERAIDSTART="no"
# it should be safe to remove scsi_mod from here, but I'm not sure...
PRESCSIMODS="-scsi_mod unknown -sd_mod"
usage () {
echo "usage: `basename $0` [--version] [-v] [-f] [--ifneeded] [--preload <module>]" 1>&2
echo " [--with=<module>] [--image-version] [--fstab=<fstab>] [--nocompress]" 1>&2
- echo " [--fs=rom|ext2|cram] [--no-bsp] [--modules-conf=<modules.conf>]" 1>&2
+ echo " [--initrdfs=rom|ext2|cram] [--modules-conf=<modules.conf>]" 1>&2
echo " <initrd-image> <kernel-version>" 1>&2
echo " (ex: `basename $0` /boot/initrd-2.2.5-15.img 2.2.5-15)" 1>&2
exit 1
if [ "$1" != silent ] ; then
echo "$module: module not found in $depfile" 1>&2
fi
- exit 1
+ if ! is_no "$EXIT_IF_MISSING" ; then
+ exit 1
+ else
+ echo "If $module isn't compiled in kernel then this initrd may not start your system". 1>&2
+ fi
fi
level=$3
. /etc/sysconfig/geninitrd
fi
-if is_yes $USEBSP ; then
- [ ! -x /sbin/bsp ] && USEBSP="no"
+if [ ! -x /sbin/bsp ] ; then
+ echo "/sbin/bsp is missing !"
+ exit 1
fi
if [ "`uname -m`" = "ia64" ]; then
IMAGESIZE=3000
fi
while [ $# -gt 0 ]; do
case $1 in
- --no-bsp)
- USEBSP="no"
- ;;
--fstab*)
if is_yes "`echo $1 | awk '/=/ { print "yes"; }'`" ; then
fstab="`echo $1 | awk -F= '{print $2;}'`"
fi
PREMODS="$PREMODS $modname"
;;
- --fs=*)
+ --initrdfs=*)
FS="`echo $1 | awk -F= '{print $2;}'`"
;;
- --fs)
+ --initrdfs)
FS="$2"
shift
;;
# check to see if we need to set up a loopback filesystem
if is_yes "`echo "$rootdev" | awk -F/ '{print($3);}' | awk '/loop/ { print "yes"; }'`" ; then
+ echo "Sorry, root on loop device isn't supported." 1>&2
+ exit 1
+ # TODO: rewrite for bsp and make nfs ready
if [ ! -x /sbin/losetup ]; then
echo "losetup is missing"
exit 1
BASICMODULES="$BASICMODULES -loop"
findmodule "-$loopFs"
BASICMODULES="$BASICMODULES -${loopFs}"
- # don't have any clue, how is this supposed to work,
- # anyway no bsp
- USEBSP="no"
+ # don't have any clue, how is this supposed to work
else # Check for other filesystems
findmodule "-$rootFs"
fi
# without devfs...
mknod "$MNTIMAGE/dev/console" c 5 1
-if is_yes "$USEBSP" ; then
- s="$MNTIMAGE/etc/startup"
- inst /sbin/bsp "$RCFILE"
- echo "# autogenerated startup" > "$s"
- echo "" >> "$s"
-
- for MODULE in $MODULES; do
- module="`echo $MODULE | awk -F/ '{ $0=$NF } /.o$/ { $0=substr($0,1,length($0)-2); } { print $0; }'`"
- options="`awk '{ if($1 == "options" && $2 == "'${module}'") { for(i=3;i<=NF;i++) printf("%s ",$i); }}' "$modulefile"`"
-
- if [ -n "$verbose" ]; then
- /bin/echo -n "Loading module $module "
- if [ -n "$options" ] ; then
- echo "with options $options."
- else
- echo "without options."
- fi
- fi
- echo "insmod /lib/modules/$kernel/$MODULE $options" >> "$s"
- done
-else
- inst /bin/trash "$MNTIMAGE/bin/sh"
- inst /sbin/insmod.static "$MNTIMAGE/bin/insmod"
-
- mknod "$MNTIMAGE/dev/null" c 1 3
- mknod "$MNTIMAGE/dev/ram" b 1 1
- mknod "$MNTIMAGE/dev/systty" c 4 0
- for i in 1 2 3 4; do
- mknod "$MNTIMAGE/dev/tty$i" c 4 1
- done
- mknod "$MNTIMAGE/dev/zero" c 1 5
+s="$MNTIMAGE/etc/startup"
+inst /sbin/bsp "$RCFILE"
+echo "# autogenerated startup" > "$s"
+echo "" >> "$s"
- echo "#!/bin/sh" > "$RCFILE"
- echo "" >> "$RCFILE"
+for MODULE in $MODULES; do
+ module="`echo $MODULE | awk -F/ '{ $0=$NF } /.o$/ { $0=substr($0,1,length($0)-2); } { print $0; }'`"
+ options="`awk '{ if($1 == "options" && $2 == "'${module}'") { for(i=3;i<=NF;i++) printf("%s ",$i); }}' "$modulefile"`"
- for MODULE in $MODULES; do
- module="`echo $MODULE | awk -F/ '{ $0=$NF } /.o$/ { $0=substr($0,1,length($0)-2); } { print $0; }'`"
- if [ -f "$modulefile" ] ; then
- options="`awk '{ if($1 == "options" && $2 == "'${module}'") { for(i=3;i<=NF;i++) printf("%s ",$i); }}' "$modulefile"`"
+ if [ -n "$verbose" ]; then
+ /bin/echo -n "Loading module $module "
+ if [ -n "$options" ] ; then
+ echo "with options $options."
else
- options=
- fi
-
- if [ -n "$verbose" ]; then
- echo "Loading module $module with options $options"
- fi
- echo "Add module $module to initrd."
- echo "echo \"Loading $module module\"" >> "$RCFILE"
- echo "insmod -k /lib/modules/$kernel/$MODULE $options" >> "$RCFILE"
- done
-
-
- if [ -n "$loopDev" ]; then
- if [ ! -d /initrd ]; then
- mkdir /initrd
+ echo "without options."
fi
-
- cp -a "$loopDev" "$MNTIMAGE/dev"
- cp -a "$rootdev" "$MNTIMAGE/dev"
- echo "echo Mounting device containing loopback root filesystem" >> "$RCFILE"
- echo "mount -t $loopFs $loopDev /loopfs" >> "$RCFILE"
- echo "echo Setting up loopback device $rootdev" >> $RCFILE
- echo "losetup $rootdev /loopfs$loopFile" >> "$RCFILE"
fi
-fi
+ echo "insmod /lib/modules/$kernel/$MODULE $options" >> "$s"
+done
+
+# TODO: rewrite for bsp
+#if [ -n "$loopDev" ]; then
+# if [ ! -d /initrd ]; then
+# mkdir /initrd
+# fi
+#
+# cp -a "$loopDev" "$MNTIMAGE/dev"
+# cp -a "$rootdev" "$MNTIMAGE/dev"
+# echo "echo Mounting device containing loopback root filesystem" >> "$RCFILE"
+# echo "mount -t $loopFs $loopDev /loopfs" >> "$RCFILE"
+# echo "echo Setting up loopback device $rootdev" >> $RCFILE
+# echo "losetup $rootdev /loopfs$loopFile" >> "$RCFILE"
+#fi
if is_yes "$USERAIDSTART" ; then
if [ -x /sbin/raidstart.static ] ; then