Author: glen Date: Tue Jan 17 23:11:27 2006 New Revision: 6838 Modified: geninitrd/trunk/geninitrd Log: - add dmraid support, needs udev as it creates nodes on /dev - probably udev support should be improved to copy config to initrd so the nodes correspond to ones configured in host currently customised udev in host has no effect on initrd
Modified: geninitrd/trunk/geninitrd ============================================================================== --- geninitrd/trunk/geninitrd (original) +++ geninitrd/trunk/geninitrd Tue Jan 17 23:11:27 2006 @@ -48,6 +48,10 @@ UDEV_TMPFS="yes" . /etc/udev/udev.conf fi + +if [ -x /sbin/dmraid-initrd ]; then + USE_DMRAID="yes" +fi usage () { echo "usage: `basename $0` [--version] [-v] [-f] [--ifneeded] [--preload <module>]" @@ -55,7 +59,7 @@ echo " [--initrdfs=rom|ext2|cram] [--modules-conf=<modules.conf>]" echo " [--with-raidstart] [--without-raidstart] [--with-insmod-static]" echo " [--without-bootsplash] [--lvmtoolsversion=1|2] [--without-udev]" - echo " [--without-suspend]" + echo " [--without-suspend] [--without-dmraid]" echo " <initrd-image> <kernel-version>" echo " (ex: `basename $0` /boot/initrd-2.2.5-15.img 2.2.5-15)" exit 1 @@ -764,6 +768,9 @@ --without-udev) USE_UDEV= ;; + --without-dmraid) + USE_DMRAID= + ;; --with=*) BASICMODULES="$BASICMODULES `echo $1 | awk -F= '{print $2;}'`" ;; @@ -852,7 +859,8 @@ fi if [ "$pack_version" -lt "002006" ] ; then - USE_UDEV= + USE_UDEV= + USE_DMRAID= fi [ -z "$USE_UDEV" ] && UDEV_TMPFS= @@ -1082,7 +1090,7 @@ if is_yes "$USE_UDEV"; then if is_yes "$UDEV_TMPFS"; then - cat >> "$s" << EOF + cat >> "$s" <<-EOF echo Creating /dev mount -o mode=0755 -t tmpfs none /dev mknod /dev/console c 5 1 @@ -1092,7 +1100,7 @@ mkdir /dev/shm EOF fi - cat >> "$s" << EOF + cat >> "$s" <<-EOF mount -t proc none /proc echo Starting udev /sbin/udevstart @@ -1102,6 +1110,31 @@ fi } +initrd_gen_dmraid() { + if [ ! -x /sbin/dmraid-initrd ] ; then + echo "/sbin/dmraid-initrd is missing missing !" + exit 1 + fi + + if [ ! -x $MNTIMAGE/sbin/udev ]; then + echo "udev is needed on target initrd for dmraid to work!" + exit 1 + fi + + mkdir -p "$MNTIMAGE/sbin" + inst /sbin/dmraid-initrd $MNTIMAGE/sbin/dmraid +cat <<-EOF >> "$s" + mount -t proc none /proc + mount -t sysfs none /sys + # 2 secs was enough for my system to initialize. but really this is udev issue? + usleep 2000000 + /sbin/dmraid -ay -i + umount /sys + umount /proc +EOF +} + + initrd_gen_softraid() { [ -n "$verbose" ] && echo "Setting up mdadm..." @@ -1279,6 +1312,10 @@ initrd_gen_suspend fi +if is_yes "$USE_DMRAID"; then + initrd_gen_dmraid +fi + if is_yes "$usenfs" ; then initrd_gen_nfs elif is_yes "$USERAIDSTART" && is_yes "$raidfound" ; then _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit