fi
fi
- #if [ -d "/mnt/initfs/lib/modules/`uname -r`" ] ; then
- # MODULEPATH="/mnt/initfs/lib/modules/`uname -r`"
- #else
- # MODULEPATH=/mnt/initfs/lib/modules/2.6.21-omap1
- #fi
- #insmod "$MODULEPATH/mbcache.ko" 2>/dev/null
-
# missing in Fremantle...
# modprobe mbcache
#insmod "$MODULEPATH/$IMGFS.ko" 2>/dev/null
modprobe $IMGFS
+ if [ -d "/lib/modules/`uname -r`" ] ; then
+ MODULEPATH="/lib/modules/`uname -r`"
+ else
+ MODULEPATH=/lib/modules/2.6.28-omap1
+ fi
+
if [ "$LOOP" = "loop," ] ; then
- #echo "mounting $IMGFILE on the turbo-loop ;)"
- echo "mounting $IMGFILE on loop" >/dev/stderr
- #insmod /lib/modules/2.6.21-omap1/dm-mod.ko 2>/dev/null
- #insmod /lib/modules/2.6.21-omap1/dm-loop.ko 2>/dev/null
- #NEXTLOOP=`ls -l /dev/dm-* 2>/dev/null | tail -1 | awk '{print $NF}' | awk -F '-' '{print $NF+1}'`
- NEXTLOOP=""
- if [ "x$NEXTLOOP" = "x" ] ; then
- NEXTLOOP=0
+
+ # Check for dm-loop kernel module and dmlosetup command.
+ # If found, then use dm-loop instead of regular loop.
+
+ if [ -f "$MODULEPATH/dm-loop.ko" ] && [ -f "/sbin/dmlosetup" ]; then
+
+ # use dm-loop
+
+ echo "mounting $IMGFILE on the turbo-loop ;)"
+ #insmod $MODULEPATH/dm-mod.ko 2>/dev/null
+ modprobe dm-mod
+ #insmod $MODULEPATH/dm-loop.ko 2>/dev/null
+ modprobe dm-loop
+
+ NEXTLOOP=`ls -l /dev/dm-* 2>/dev/null | tail -1 | awk '{print $NF}' | awk -F '-' '{print $NF+1}'`
+ if [ "x$NEXTLOOP" = "x" ] ; then
+ NEXTLOOP=0
+ fi
+
+ DMLOMSG=`dmlosetup loop$NEXTLOOP "$IMGFILE" 2>&1`
+ MNTMSG=`mount -t "$IMGFS" /dev/dm-$NEXTLOOP "$MNTPT" -o noatime,nobh,nodiratime 2>&1`
+
+ else
+
+ # use "regular" loop
+
+ echo "mounting $IMGFILE on loop" >/dev/stderr
+ NEXTLOOP=""
+ if [ "x$NEXTLOOP" = "x" ] ; then
+ NEXTLOOP=0
+ fi
+
+ DMLOMSG=""
+ MNTMSG=`mount -t "$IMGFS" "$IMGFILE" "$MNTPT" -o loop,noatime,nobh,nodiratime 2>&1`
+
fi
- #DMLOMSG=`dmlosetup loop$NEXTLOOP "$IMGFILE" 2>&1`
- DMLOMSG=""
- #MNTMSG=`mount -t "$IMGFS" /dev/dm-$NEXTLOOP "$MNTPT" -o noatime 2>&1`
- MNTMSG=`mount -t "$IMGFS" "$IMGFILE" "$MNTPT" -o loop,noatime 2>&1`
+
if [ "$?" != 0 ] ; then
MSG1=`printf "Mount failure!\n\n$IMGFILE failed to mount on loop$NEXTLOOP\n\n$DMLOMSG\n$MNTMSG"`
if [ ! -f "/usr/bin/gxmessage" ] ; then
echo ...$IMGFILE mounted on loop$NEXTLOOP >/dev/stderr
else
echo "mounting device: $IMGFILE" >/dev/stderr
- if ! mount -t "$IMGFS" "$IMGFILE" "$MNTPT" -o ${LOOP}noatime ; then
+ if ! mount -t "$IMGFS" "$IMGFILE" "$MNTPT" -o ${LOOP}noatime,nobh,nodiratime ; then
MSG1=`printf "Mount failure!\n\n$IMGFILE failed to mount on $MNTPT"`
if [ ! -f "/usr/bin/gxmessage" ] ; then
echo $MSG1 >/dev/stderr