On 21/02/08 12:23 -0500, Ward Vandewege wrote:
-- Ward Vandewege ward@fsf.org Free Software Foundation - Senior System Administrator
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
Index: skeleton/linuxrc
--- skeleton/linuxrc (revision 117) +++ skeleton/linuxrc (working copy) @@ -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 Index: config/payloads/Config.in =================================================================== --- config/payloads/Config.in (revision 117) +++ config/payloads/Config.in (working copy) @@ -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 Index: scripts/Makefile.lab =================================================================== --- scripts/Makefile.lab (revision 117) +++ scripts/Makefile.lab (working copy) @@ -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..."
Index: packages/busybox/conf/defconfig
--- packages/busybox/conf/defconfig (revision 117) +++ packages/busybox/conf/defconfig (working copy) @@ -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 Index: packages/busybox/conf/defconfig-serengeti_cheetah-x86_64 =================================================================== --- packages/busybox/conf/defconfig-serengeti_cheetah-x86_64 (revision 117) +++ packages/busybox/conf/defconfig-serengeti_cheetah-x86_64 (working copy) @@ -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
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
On Fri, Feb 22, 2008 at 11:48:46AM -0700, Jordan Crouse wrote:
On 21/02/08 12:23 -0500, Ward Vandewege wrote:
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
r125.
Thanks, Ward.