[OE-core] [PATCH v2] init-live: default to initrd shell if image isn't found

Darren Hart dvhart at linux.intel.com
Mon Dec 17 17:06:19 UTC 2012



On 12/17/2012 04:55 AM, Alex DAMIAN wrote:
> From: Alexandru DAMIAN <alexandru.damian at intel.com>
> 
> Adds "debugshell" command line parameter for live/install images.
> 
> If the init live fails to find and mount a root-fs image,
> dumps to a shell after timeout so that the developer can figure
> what's wrong.
> 
> Timeout defaults to 30 seconds, but it can be changed as param
> argument.
> 
> Prior art in Ubuntu. Also, leaving a system stale isn't good form.
> 
> Signed-off-by: Alexandru DAMIAN <alexandru.damian at intel.com>
> ---
>  meta/recipes-core/initrdscripts/files/init-live.sh |   18 +++++++++++++++++-
>  1 file changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-core/initrdscripts/files/init-live.sh b/meta/recipes-core/initrdscripts/files/init-live.sh
> index c591f0d..d99a8ea 100644
> --- a/meta/recipes-core/initrdscripts/files/init-live.sh
> +++ b/meta/recipes-core/initrdscripts/files/init-live.sh
> @@ -45,7 +45,13 @@ read_args() {
>                      console_params=$arg
>                  else
>                      console_params="$console_params $arg"
> -                fi
> +                fi ;;
> +            debugshell*)
> +                if [ -z "$optarg" ]; then
> +                        shelltimeout=30
> +                else
> +                        shelltimeout=$optarg
> +                fi 
>          esac
>      done
>  }
> @@ -75,6 +81,7 @@ early_setup
>  read_args
>  
>  echo "Waiting for removable media..."
> +C=0
>  while true
>  do
>    for i in `ls /media 2>/dev/null`; do
> @@ -90,6 +97,15 @@ do
>    if [ "$found" = "yes" ]; then
>        break;
>    fi
> +  # don't wait for more than $shelltimeout seconds, if it's set
> +  if [ -n "$shelltimeout" ]; then
> +      echo -n " " $(( $shelltimeout - $C ))
> +      if [ $C -ge $shelltimeout ]; then
> +           echo "..."
> +           fatal "Cannot find root image on media, dropping to shell "

I'd recommend being explicity about what it is looking for when
debugshell is used. Which devices where probed, what was the file it
looked for. Save the developer from having to find this script in the
repository and look it up.

--
Darren

> +      fi
> +      C=$(( C + 1 ))
> +  fi
>    sleep 1
>  done
>  
> 

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Technical Lead - Linux Kernel




More information about the Openembedded-core mailing list