[coreboot] add optional 'press enter to start the busybox shell' pause to LAB

Jordan Crouse jordan.crouse at amd.com
Fri Feb 22 19:48:46 CET 2008


On 21/02/08 12:23 -0500, Ward Vandewege wrote:
> -- 
> Ward Vandewege <ward at 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 at gnu.org>
Acked-by: Jordan Crouse <jordan.crouse at 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 at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot

-- 
Jordan Crouse
Systems Software Development Engineer 
Advanced Micro Devices, Inc.





More information about the coreboot mailing list