Author: ward Date: 2008-02-22 19:58:33 +0100 (Fri, 22 Feb 2008) New Revision: 125
Modified: buildrom-devel/config/payloads/Config.in buildrom-devel/packages/busybox/conf/defconfig buildrom-devel/packages/busybox/conf/defconfig-serengeti_cheetah-x86_64 buildrom-devel/scripts/Makefile.lab buildrom-devel/skeleton/linuxrc Log: This patch adds an optional delay before the LAB environment kexecs the on-disk kernel. This allows entering the busybox shell, which can be useful for maintenance and debugging. The delay is configurable from kconfig, and defaults to 5 seconds.
The patch enables CONFIG_ASH_READ_TIMEOUT in the uclibc configuration because the 'read' command in the ash shell does not support the '-t' timeout parameter otherwise.
It also changes the default for including a statically compiled copy of kexec into the LAB payload to no, because this makes the payload too large for 1MB rom chips.
Tested on real hardware.
Signed-off-by: Ward Vandewege ward@gnu.org Acked-by: Jordan Crouse jordan.crouse@amd.com
Modified: buildrom-devel/config/payloads/Config.in =================================================================== --- buildrom-devel/config/payloads/Config.in 2008-02-21 21:51:05 UTC (rev 124) +++ buildrom-devel/config/payloads/Config.in 2008-02-22 18:58:33 UTC (rev 125) @@ -95,12 +95,20 @@
config KBL bool "Reduced size kexec-tools" - default y + default n select KBL_KEXEC_ONLY help Say 'Y' here to include the the Kexec Bootloader as a cheep substitute for kexec-tools
+config LAB_PAUSE + int "Seconds to pause before booting, to allow access to the busybox environment" + default 5 + help + Set the number of seconds you'd like to pause before booting the kexec'ed + kernel here. During this pause, you can press enter to gain access to the + busybox environment. + config BUSYBOX bool "Busybox" default y
Modified: buildrom-devel/packages/busybox/conf/defconfig =================================================================== --- buildrom-devel/packages/busybox/conf/defconfig 2008-02-21 21:51:05 UTC (rev 124) +++ buildrom-devel/packages/busybox/conf/defconfig 2008-02-22 18:58:33 UTC (rev 125) @@ -556,7 +556,7 @@ # # CONFIG_ASH_JOB_CONTROL is not set # CONFIG_ASH_READ_NCHARS is not set -# CONFIG_ASH_READ_TIMEOUT is not set +CONFIG_ASH_READ_TIMEOUT=y CONFIG_ASH_ALIAS=y CONFIG_ASH_MATH_SUPPORT=y # CONFIG_ASH_MATH_SUPPORT_64 is not set
Modified: buildrom-devel/packages/busybox/conf/defconfig-serengeti_cheetah-x86_64 =================================================================== --- buildrom-devel/packages/busybox/conf/defconfig-serengeti_cheetah-x86_64 2008-02-21 21:51:05 UTC (rev 124) +++ buildrom-devel/packages/busybox/conf/defconfig-serengeti_cheetah-x86_64 2008-02-22 18:58:33 UTC (rev 125) @@ -556,7 +556,7 @@ # # CONFIG_ASH_JOB_CONTROL is not set # CONFIG_ASH_READ_NCHARS is not set -# CONFIG_ASH_READ_TIMEOUT is not set +CONFIG_ASH_READ_TIMEOUT=y CONFIG_ASH_ALIAS=y CONFIG_ASH_MATH_SUPPORT=y # CONFIG_ASH_MATH_SUPPORT_64 is not set
Modified: buildrom-devel/scripts/Makefile.lab =================================================================== --- buildrom-devel/scripts/Makefile.lab 2008-02-21 21:51:05 UTC (rev 124) +++ buildrom-devel/scripts/Makefile.lab 2008-02-22 18:58:33 UTC (rev 125) @@ -3,6 +3,7 @@ $(OUTPUT_DIR)/initrd.uncompressed: $(PAYLOAD-y) @ cp -af $(SKELETON_DIR)/* $(INITRD_DIR) @ chmod 0755 $(INITRD_DIR)/linuxrc + @ sed -i 's/%%LAB_PAUSE%%/$(CONFIG_LAB_PAUSE)/' $(INITRD_DIR)/linuxrc
@ echo "Cleaning up shared libraries..."
Modified: buildrom-devel/skeleton/linuxrc =================================================================== --- buildrom-devel/skeleton/linuxrc 2008-02-21 21:51:05 UTC (rev 124) +++ buildrom-devel/skeleton/linuxrc 2008-02-22 18:58:33 UTC (rev 125) @@ -17,11 +17,24 @@ # Show the version cat /buildrom-version > /dev/tty$VT
-message "Trying to boot from hdd." -cd /bin -./boot-hdd +message "Press enter to start the busybox shell (pausing %%LAB_PAUSE%% seconds)." +read -t %%LAB_PAUSE%% UNUSED RET=$? -cd / +if [ "$RET" == '0' ]; then + message "NOTICE: Starting the shell..." + message "" + message "To boot your system as normal, type:" + message " cd /bin; ./boot-hdd" + message "" + openvt $VT /bin/ash + exec /bin/ash +else + message "Trying to boot from hdd." + cd /bin + ./boot-hdd + RET=$? + cd / +fi
message "NOTICE: Starting the shell..." openvt $VT /bin/ash