[oe-commits] org.oe.dev initramfs-module-bootmenu, initramfs-module-kexecboot: Fixes for kexecing.

pfalcon commit openembedded-commits at lists.openembedded.org
Sat Feb 16 03:07:51 UTC 2008


initramfs-module-bootmenu, initramfs-module-kexecboot: Fixes for kexecing.
* Be sure to pass original command line contents to new kernel.
* Add protection against infinite recursive kexecing.

Author: pfalcon at openembedded.org
Branch: org.openembedded.dev
Revision: 6453c1938bbcd0ab830b8bc186e501a3ec4ebb10
ViewMTN: http://monotone.openembedded.org/revision/info/6453c1938bbcd0ab830b8bc186e501a3ec4ebb10
Files:
1
packages/initrdscripts/files/30-bootmenu.sh
packages/initrdscripts/files/87-kexecboot.sh
packages/initrdscripts/initramfs-module-bootmenu_1.0.bb
packages/initrdscripts/initramfs-module-kexecboot_1.0.bb
Diffs:

#
# mt diff -rab8ea819b7e17ad766090d501a7e101eec04523d -r6453c1938bbcd0ab830b8bc186e501a3ec4ebb10
#
# 
# 
# patch "packages/initrdscripts/files/30-bootmenu.sh"
#  from [217e6fb3656133f0b3da59e7967d23f3bdf7a59a]
#    to [fa8ea4dd925ccbd5bbc48f509c2c02ba47bc73e8]
# 
# patch "packages/initrdscripts/files/87-kexecboot.sh"
#  from [d2082585f4d6be02d62797744802d10c9ddce372]
#    to [73528951640012dc82e2f85bfa592a5762cc3f45]
# 
# patch "packages/initrdscripts/initramfs-module-bootmenu_1.0.bb"
#  from [394be03a399dd523d0e97625df53ae15512e0a5d]
#    to [f13252f06b1023c948e8295f3ee95c0eda773899]
# 
# patch "packages/initrdscripts/initramfs-module-kexecboot_1.0.bb"
#  from [8f53faf60c2ed70390b85b76940ba0ca9619e5a3]
#    to [50b73fbc6eac528a3565056e247019833cf00d3b]
# 
============================================================
--- packages/initrdscripts/files/30-bootmenu.sh	217e6fb3656133f0b3da59e7967d23f3bdf7a59a
+++ packages/initrdscripts/files/30-bootmenu.sh	fa8ea4dd925ccbd5bbc48f509c2c02ba47bc73e8
@@ -145,12 +145,13 @@ if [ "$dev" == "NFS" ]; then
 
 if [ "$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"
+    CMDLINE="$CMDLINE root=$ROOT_DEVICE"
 fi
 
 echo ROOT_DEVICE=$ROOT_DEVICE
============================================================
--- packages/initrdscripts/files/87-kexecboot.sh	d2082585f4d6be02d62797744802d10c9ddce372
+++ packages/initrdscripts/files/87-kexecboot.sh	73528951640012dc82e2f85bfa592a5762cc3f45
@@ -1,17 +1,19 @@ if [ -n "$BOOT_ROOT" -a -f "$BOOT_ROOT/b
 #!/bin/sh
 # 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
============================================================
--- packages/initrdscripts/initramfs-module-bootmenu_1.0.bb	394be03a399dd523d0e97625df53ae15512e0a5d
+++ packages/initrdscripts/initramfs-module-bootmenu_1.0.bb	f13252f06b1023c948e8295f3ee95c0eda773899
@@ -1,5 +1,5 @@ SRC_URI = "file://30-bootmenu.sh"
 SRC_URI = "file://30-bootmenu.sh"
-PR = "r8"
+PR = "r9"
 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.
============================================================
--- packages/initrdscripts/initramfs-module-kexecboot_1.0.bb	8f53faf60c2ed70390b85b76940ba0ca9619e5a3
+++ packages/initrdscripts/initramfs-module-kexecboot_1.0.bb	50b73fbc6eac528a3565056e247019833cf00d3b
@@ -1,5 +1,5 @@ SRC_URI = "file://87-kexecboot.sh"
 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"
 






More information about the Openembedded-commits mailing list