diff options
Diffstat (limited to 'packages/initrdscripts/files')
-rw-r--r-- | packages/initrdscripts/files/10-initfs.sh | 1 | ||||
-rw-r--r-- | packages/initrdscripts/files/30-bootmenu.sh | 10 | ||||
-rw-r--r-- | packages/initrdscripts/files/85-blockboot.sh | 6 | ||||
-rw-r--r-- | packages/initrdscripts/files/init.sh | 10 |
4 files changed, 21 insertions, 6 deletions
diff --git a/packages/initrdscripts/files/10-initfs.sh b/packages/initrdscripts/files/10-initfs.sh index bad649e5c2..c2a843eb12 100644 --- a/packages/initrdscripts/files/10-initfs.sh +++ b/packages/initrdscripts/files/10-initfs.sh @@ -3,3 +3,4 @@ modprobe -q vfat >/dev/null 2>&1 modprobe -q ext2 >/dev/null 2>&1 modprobe -q ext3 >/dev/null 2>&1 +modprobe -q jffs2 >/dev/null 2>&1 diff --git a/packages/initrdscripts/files/30-bootmenu.sh b/packages/initrdscripts/files/30-bootmenu.sh index d54a643807..a45b55a353 100644 --- a/packages/initrdscripts/files/30-bootmenu.sh +++ b/packages/initrdscripts/files/30-bootmenu.sh @@ -95,6 +95,7 @@ while read maj min nblk dev; do done < /proc/partitions add_menu_item "NFS (nfsroot=192.168.2.200:/srv/nfs/oe/image)" +add_menu_item "Shell" total=`echo -e $list | wc -l` num=0 @@ -142,8 +143,11 @@ echo Selected: $sel dev=`expr "$sel" : '\([^ /]*\)'` path=`expr "$sel" : '[^/]*\([^ ]*\).*'` +fstype=`expr "$sel" : '[^ ]* *\(.*\)'` -if [ "$dev" == "NFS" ]; then +if [ "$dev" == "Shell" ]; then + exec /bin/sh +elif [ "$dev" == "NFS" ]; then ROOT_DEVICE="/dev/nfs" CMDLINE="$CMDLINE root=/dev/nfs nfsroot=192.168.2.200:/srv/nfs/oe/image" elif [ -n "$path" ]; then @@ -151,6 +155,10 @@ elif [ -n "$path" ]; then CMDLINE="$CMDLINE root=/dev/loop looproot=/dev/$dev:$path" else ROOT_DEVICE="/dev/$dev" + # jffs2 is not recognized by mount automagically + if [ "$fstype" == "(jffs2)" ]; then + FSTYPE="jffs2" + fi CMDLINE="$CMDLINE root=$ROOT_DEVICE" fi diff --git a/packages/initrdscripts/files/85-blockboot.sh b/packages/initrdscripts/files/85-blockboot.sh index 567f7e29b3..fee9072d3a 100644 --- a/packages/initrdscripts/files/85-blockboot.sh +++ b/packages/initrdscripts/files/85-blockboot.sh @@ -3,6 +3,10 @@ if [ -e "$ROOT_DEVICE" ]; then echo "booting from: $ROOT_DEVICE" - mount "$ROOT_DEVICE" /mnt + type="" + if [ -n "$FSTYPE" ]; then + type="-t $FSTYPE" + fi + mount $type "$ROOT_DEVICE" /mnt || fatal "Unable to mount rootfs device" BOOT_ROOT=/mnt fi diff --git a/packages/initrdscripts/files/init.sh b/packages/initrdscripts/files/init.sh index f8d5de9173..08163fa040 100644 --- a/packages/initrdscripts/files/init.sh +++ b/packages/initrdscripts/files/init.sh @@ -8,6 +8,7 @@ early_setup() { mkdir /proc mount -t proc proc /proc mkdir /mnt + modprobe -q mtdblock } dev_setup() @@ -48,13 +49,13 @@ boot_root() { exec switch_root -c /dev/console $BOOT_ROOT /sbin/init } -boot_failed() { - echo "No valid root device was specified. Please add root=/dev/something to" - echo "the kernel command-line and try again." +fatal() { + echo $1 echo exec sh } + echo "Starting initramfs boot..." early_setup read_args @@ -68,4 +69,5 @@ dev_setup load_modules [ -n "$BOOT_ROOT" ] && boot_root -boot_failed + +fatal "No valid root device was specified. Please add root=/dev/something to the kernel command-line and try again." |