diff options
author | Paul Sokolovsky <pmiscml@gmail.com> | 2008-02-21 14:29:47 +0000 |
---|---|---|
committer | Paul Sokolovsky <pmiscml@gmail.com> | 2008-02-21 14:29:47 +0000 |
commit | cf670c1e8a4846f51e5c2a4d3adfdc41a5e4e855 (patch) | |
tree | 4fab1715983cc202298e9ba028b251d6f17ab050 /packages/initrdscripts | |
parent | 31eb5409880015cdb38bc25924773af5a20d93dd (diff) | |
download | openembedded-cf670c1e8a4846f51e5c2a4d3adfdc41a5e4e855.tar.gz |
Merge from .dev:
6453c1938bbcd0ab830b8bc186e501a3ec4ebb10 initramfs-module-bootmenu, initramfs-module-kexecboot: Fixes for kexecing. (PaulS, Koen)
766dada8a567205427a8c1eefb0fbe5923190602 initramfs-uniboot: Modprobe mtdblock and factor out fatal(). (PaulS, Koen)
461df56d5cc4fa62e620c9efe56f3253258ee0f5 initramfs-module-block: Accept additional FSTYPE param, handle mount failure. (PaulS, Koen)
f6ab5be390e4400fb993f0e449049b62daece68e initramfs-module-bootmenu: Add support for jffs2 booting and "drop to shell" option. (PaulS, Koen)
bfa62d5baf96a6142cf2f6eb0833399d79630633 initramfs-uniboot: FSTYPE -> ROOT_FSTYPE, set from rootfstype= command line param. (PaulS, Koen)
Diffstat (limited to 'packages/initrdscripts')
-rw-r--r-- | packages/initrdscripts/files/10-initfs.sh | 1 | ||||
-rw-r--r-- | packages/initrdscripts/files/30-bootmenu.sh | 15 | ||||
-rw-r--r-- | packages/initrdscripts/files/85-blockboot.sh | 6 | ||||
-rw-r--r-- | packages/initrdscripts/files/87-kexecboot.sh | 24 | ||||
-rw-r--r-- | packages/initrdscripts/files/init.sh | 12 | ||||
-rw-r--r-- | packages/initrdscripts/initramfs-module-block_1.0.bb | 2 | ||||
-rw-r--r-- | packages/initrdscripts/initramfs-module-bootmenu_1.0.bb | 2 | ||||
-rw-r--r-- | packages/initrdscripts/initramfs-module-initfs_1.0.bb | 2 | ||||
-rw-r--r-- | packages/initrdscripts/initramfs-module-kexecboot_1.0.bb | 2 | ||||
-rw-r--r-- | packages/initrdscripts/initramfs-uniboot_1.0.bb | 3 |
10 files changed, 45 insertions, 24 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 7bc1429b1b..3f3b8c7079 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,15 +143,23 @@ 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 nfsroot=192.168.2.200:/srv/nfs/oe/image" + CMDLINE="$CMDLINE root=/dev/nfs nfsroot=192.168.2.200:/srv/nfs/oe/image" elif [ -n "$path" ]; then ROOT_DEVICE="/dev/loop" - CMDLINE="looproot=/dev/$dev:$path" + 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 + ROOT_FSTYPE="jffs2" + fi + CMDLINE="$CMDLINE root=$ROOT_DEVICE" fi echo ROOT_DEVICE=$ROOT_DEVICE diff --git a/packages/initrdscripts/files/85-blockboot.sh b/packages/initrdscripts/files/85-blockboot.sh index 567f7e29b3..e1c3ed893e 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 "$ROOT_FSTYPE" ]; then + type="-t $ROOT_FSTYPE" + fi + mount $type "$ROOT_DEVICE" /mnt || fatal "Unable to mount rootfs device" BOOT_ROOT=/mnt fi diff --git a/packages/initrdscripts/files/87-kexecboot.sh b/packages/initrdscripts/files/87-kexecboot.sh index ab281577d4..9232934f98 100644 --- a/packages/initrdscripts/files/87-kexecboot.sh +++ b/packages/initrdscripts/files/87-kexecboot.sh @@ -2,16 +2,18 @@ # Allow kexecing to kernel in rootfs if [ -n "$BOOT_ROOT" -a -f "$BOOT_ROOT/boot/zImage" ]; then - echo "Kernel found in rootfs:" - ls -l "$BOOT_ROOT/boot/zImage" - initramfs="" - if [ -f "$BOOT_ROOT/boot/initramfs.bin" ]; then - echo "Initramfs found in rootfs:" - ls -l "$BOOT_ROOT/boot/initramfs.bin" - initramfs="--initrd=$BOOT_ROOT/boot/initramfs.bin" + if ! expr "$CMDLINE" : '.*nokexec'; then + echo "Kernel found in rootfs:" + ls -l "$BOOT_ROOT/boot/zImage" + initramfs="" + if [ -f "$BOOT_ROOT/boot/initramfs.bin" ]; then + echo "Initramfs found in rootfs:" + ls -l "$BOOT_ROOT/boot/initramfs.bin" + initramfs="--initrd=$BOOT_ROOT/boot/initramfs.bin" + fi + echo /usr/sbin/kexec -f "$BOOT_ROOT/boot/zImage" $initramfs --command-line="$CMDLINE nokexec" + sleep 10 + /usr/sbin/kexec -f "$BOOT_ROOT/boot/zImage" $initramfs --command-line="$CMDLINE nokexec" + sleep 10000 fi - echo /usr/sbin/kexec -f "$BOOT_ROOT/boot/zImage" $initramfs --command-line="$CMDLINE" - sleep 10 - /usr/sbin/kexec -f "$BOOT_ROOT/boot/zImage" $initramfs --command-line="$CMDLINE" - sleep 10000 fi diff --git a/packages/initrdscripts/files/init.sh b/packages/initrdscripts/files/init.sh index f8d5de9173..8b9fe12429 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() @@ -30,6 +31,8 @@ read_args() { case $arg in root=*) ROOT_DEVICE=$optarg ;; + rootfstype=*) + ROOT_FSTYPE=$optarg ;; rootdelay=*) rootdelay=$optarg ;; esac @@ -48,13 +51,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 +71,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." diff --git a/packages/initrdscripts/initramfs-module-block_1.0.bb b/packages/initrdscripts/initramfs-module-block_1.0.bb index 72812a2490..b4b2d43150 100644 --- a/packages/initrdscripts/initramfs-module-block_1.0.bb +++ b/packages/initrdscripts/initramfs-module-block_1.0.bb @@ -1,5 +1,5 @@ SRC_URI = "file://85-blockboot.sh" -PR = "r1" +PR = "r3" RDEPENDS = "initramfs-uniboot" DESCRIPTION = "An initramfs module for booting off normal block devices." diff --git a/packages/initrdscripts/initramfs-module-bootmenu_1.0.bb b/packages/initrdscripts/initramfs-module-bootmenu_1.0.bb index e87ba69776..8c66521f30 100644 --- a/packages/initrdscripts/initramfs-module-bootmenu_1.0.bb +++ b/packages/initrdscripts/initramfs-module-bootmenu_1.0.bb @@ -1,5 +1,5 @@ SRC_URI = "file://30-bootmenu.sh" -PR = "r8" +PR = "r11" DESCRIPTION = "An initramfs module with UI for selection of boot device." RDEPENDS = "klibc-utils-fstype initramfs-uniboot initramfs-module-block initramfs-module-loop initramfs-module-nfs" # For VFAT mounting. diff --git a/packages/initrdscripts/initramfs-module-initfs_1.0.bb b/packages/initrdscripts/initramfs-module-initfs_1.0.bb index 64bba4a304..2c2ec07bf5 100644 --- a/packages/initrdscripts/initramfs-module-initfs_1.0.bb +++ b/packages/initrdscripts/initramfs-module-initfs_1.0.bb @@ -1,5 +1,5 @@ SRC_URI = "file://10-initfs.sh" -PR = "r2" +PR = "r4" DESCRIPTION = "An initramfs module for initializing filesystems." RDEPENDS = "initramfs-uniboot" RRECOMMENDS = "kernel-module-vfat kernel-module-ext2" diff --git a/packages/initrdscripts/initramfs-module-kexecboot_1.0.bb b/packages/initrdscripts/initramfs-module-kexecboot_1.0.bb index e8be2fd757..35100a94e6 100644 --- a/packages/initrdscripts/initramfs-module-kexecboot_1.0.bb +++ b/packages/initrdscripts/initramfs-module-kexecboot_1.0.bb @@ -1,5 +1,5 @@ SRC_URI = "file://87-kexecboot.sh" -PR = "r0.2" +PR = "r0.4" DESCRIPTION = "An initramfs module for kexecing kernel from rootfs." RDEPENDS = "initramfs-uniboot kexec-static" diff --git a/packages/initrdscripts/initramfs-uniboot_1.0.bb b/packages/initrdscripts/initramfs-uniboot_1.0.bb index 167ce71ffe..e0f726582e 100644 --- a/packages/initrdscripts/initramfs-uniboot_1.0.bb +++ b/packages/initrdscripts/initramfs-uniboot_1.0.bb @@ -1,6 +1,7 @@ SRC_URI = "file://init.sh" -PR = "r2" +PR = "r4" DESCRIPTON = "A modular initramfs init script system." +RRECOMMENDS = "kernel-module-mtdblock" do_install() { install -m 0755 ${WORKDIR}/init.sh ${D}/init |