On 12/17/2012 04:55 AM, Alex DAMIAN wrote:
> From: Alexandru DAMIAN <[email protected]>
> 
> 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 <[email protected]>
> ---
>  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

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to