--- mkinitrd 2002-09-04 22:07:04.000000000 -0700 +++ /sbin/mkinitrd 2003-02-11 12:57:58.000000000 -0800 @@ -128,7 +128,7 @@ modName="sbp2" fi - fmPath=`(cd /lib/modules/$kernel; echo find . -name $modName.o | /sbin/nash --quiet)` + fmPath=`(cd /lib/modules/$kernel; echo find . -name $modName$o | /sbin/nash --quiet)` if [ ! -f /lib/modules/$kernel/$fmPath ]; then if [ -n "$skiperrors" ]; then @@ -276,6 +276,9 @@ exit 1 fi +# 2.5.48 changed the module extension from o to ko +o=`echo $kernel | awk 'BEGIN { FS="."}; { if ( $2 >= 5 && $3 >= 48 ) print ".ko"; else print ".o"; }'` + # find a temporary directory which doesn't use tmpfs TMPDIR="" for t in /tmp /var/tmp /root ${PWD}; do @@ -461,7 +464,7 @@ dd if=/dev/zero of=$IMAGE bs=1k count=$IMAGESIZE 2> /dev/null || exit 1 -LODEV=$(echo findlodev $modName.o | /sbin/nash --quiet) +LODEV=$(echo findlodev $modName$o | /sbin/nash --quiet) if [ -z "$LODEV" ]; then rm -rf $MNTPOINT $IMAGE @@ -500,7 +503,14 @@ rm -rf $MNTPOINT/lost+found inst /sbin/nash "$MNTIMAGE/bin/nash" -inst /sbin/insmod.static "$MNTIMAGE/bin/insmod" + +# use the old insmod (when necessary) +old="" +if [ $o = ".o" -a -x /sbin/insmod.static.old ]; then + old=".old"; +fi +inst /sbin/insmod.static$old "$MNTIMAGE/bin/insmod" + ln -s /sbin/nash $MNTIMAGE/sbin/modprobe for MODULE in $MODULES; do @@ -536,7 +546,7 @@ for MODULE in $MODULES; do text="" - module=`echo $MODULE | sed "s|.*/||" | sed "s/.o$//"` + module=`echo $MODULE | sed "s|.*/||" | sed "s/$o$//"` options=`sed -n -e "s/^options[ ][ ]*$module[ ][ ]*//p" $modulefile 2>/dev/null` @@ -547,7 +557,7 @@ echo "Loading module $module$text" fi echo "echo \"Loading $module module\"" >> $RCFILE - echo "insmod /lib/$module.o $options" >> $RCFILE + echo "insmod /lib/$module$o $options" >> $RCFILE # Hack - we need a delay after loading usb-storage to give things # time to settle down before we start looking a block devices