[PATCH v3 2/3] console_countdown: add possibility to abort countdown by external commands

Sascha Hauer s.hauer at pengutronix.de
Mon Mar 13 01:07:46 PDT 2017


On Fri, Mar 10, 2017 at 05:14:37PM +0800, Jean-Christophe PLAGNIOL-VILLARD wrote:
> 
> > On Mar 10, 2017, at 2:05 PM, Oleksij Rempel <o.rempel at pengutronix.de> wrote:
> > 
> > From: Marc Kleine-Budde <mkl at pengutronix.de>
> > 
> > This patch makes it possible to abort a console countdown by an external
> > command, for example when fastboot is used. This requires additional
> > modifications in the external commands, a call to "console_countdown_abort()"
> > has to be inserted.
> > 
> > Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
> > Signed-off-by: Oleksij Rempel <o.rempel at pengutronix.de>
> > ---
> > commands/timeout.c          |  8 ++++++--
> > common/console_countdown.c  | 15 +++++++++++++++
> > include/console_countdown.h |  2 ++
> > 3 files changed, 23 insertions(+), 2 deletions(-)
> > 
> > diff --git a/commands/timeout.c b/commands/timeout.c
> > index ef1a037c1..d197cedd8 100644
> > --- a/commands/timeout.c
> > +++ b/commands/timeout.c
> > @@ -32,7 +32,7 @@ static int do_timeout(int argc, char *argv[])
> > 	char str[2] = { };
> > 	const char *varname = NULL;
> > 
> > -	while((opt = getopt(argc, argv, "crsav:")) > 0) {
> > +	while ((opt = getopt(argc, argv, "crsav:e")) > 0) {
> > 		switch(opt) {
> > 		case 'r':
> > 			flags |= CONSOLE_COUNTDOWN_RETURN;
> > @@ -46,6 +46,9 @@ static int do_timeout(int argc, char *argv[])
> > 		case 's':
> > 			flags |= CONSOLE_COUNTDOWN_SILENT;
> > 			break;
> > +		case 'e':
> > +			flags |= CONSOLE_COUNTDOWN_EXTERN;
> > +			break;
> > 		case 'v':
> > 			varname = optarg;
> > 			break;
> > @@ -73,6 +76,7 @@ BAREBOX_CMD_HELP_TEXT("Options:")
> > BAREBOX_CMD_HELP_OPT("-a", "interrupt on any key")
> > BAREBOX_CMD_HELP_OPT("-c", "interrupt on Ctrl-C")
> > BAREBOX_CMD_HELP_OPT("-r", "interrupt on RETURN")
> > +BAREBOX_CMD_HELP_OPT("-e", "interrupt on external commands (i.e. fastboot")
> > BAREBOX_CMD_HELP_OPT("-s", "silent mode")
> > BAREBOX_CMD_HELP_OPT("-v <VARIABLE>", "export pressed key to environment")
> > BAREBOX_CMD_HELP_END
> > @@ -80,7 +84,7 @@ BAREBOX_CMD_HELP_END
> > BAREBOX_CMD_START(timeout)
> > 	.cmd		= do_timeout,
> > 	BAREBOX_CMD_DESC("wait for a specified timeout")
> > -	BAREBOX_CMD_OPTS("[-acrsv] SECONDS")
> > +	BAREBOX_CMD_OPTS("[-acrsev] SECONDS")
> > 	BAREBOX_CMD_GROUP(CMD_GRP_CONSOLE)
> > 	BAREBOX_CMD_HELP(cmd_timeout_help)
> > BAREBOX_CMD_END
> > diff --git a/common/console_countdown.c b/common/console_countdown.c
> > index b2eec72b2..03b9b3353 100644
> > --- a/common/console_countdown.c
> > +++ b/common/console_countdown.c
> > @@ -23,6 +23,13 @@
> > #include <console_countdown.h>
> > #include <stdio.h>
> > 
> > +static bool console_countdown_timeout_abort;
> > +
> > +void console_countdown_abort(void)
> > +{
> > +	console_countdown_timeout_abort = true;
> Nack 
> 
> this break the security support
> 
> If we enable password  you can not activate it by default

This patch only changes anything when the -e option is given to the
timeout command, which is not the case in the current startup scripts.

Also this patch only aborts the autoboot timeout, something you can
always do with a key press, even when password/login is enabled. The
login comes after the timeout and is unaffected by this code.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list