[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 19:50:20 UTC 2012
On 12/17/2012 11:21 AM, Damian, Alexandru wrote:
> IMHO, if the system has to fatal() here, something VERY wrong is going on.
>
> This isn't your general debug option, this is a last-resort emergency
> rescue. I suppose that if you need to debug this, the system is so
> problematic you need to deep-dive into it anyway.
>
> I suggest taking it as it is now, and fill in a bugzilla entry about
> handling it better in initramfs-framework as it should be.
>
I mentioned the below because it is something I've had to verify on
several occasions. It is a fairly simple add, and you have the print
statement there anyway. If you choose to skip the extra output, I
suppose I can send a patch to add it next time I run into it.
--
Darren
> Alex
>
>
> On Mon, Dec 17, 2012 at 7:06 PM, Darren Hart <dvhart at linux.intel.com
> <mailto:dvhart at linux.intel.com>> wrote:
>
>
>
> On 12/17/2012 04:55 AM, Alex DAMIAN wrote:
> > From: Alexandru DAMIAN <alexandru.damian at intel.com <mailto: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 <mailto: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
>
>
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Technical Lead - Linux Kernel
More information about the Openembedded-core
mailing list