[PATCH 3/3] defaultenv: add login autoboot support

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Wed Aug 10 06:47:10 EDT 2011


if the login command is enable and a password set use login with timeout
to stop the boot

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
 common/Makefile                    |   10 ++++++----
 defaultenv/common/bin/boot_timeout |   10 ++++++++++
 defaultenv/common/bin/init         |    9 +--------
 defaultenv/login/bin/boot_timeout  |   15 +++++++++++++++
 4 files changed, 32 insertions(+), 12 deletions(-)
 create mode 100644 defaultenv/common/bin/boot_timeout
 create mode 100644 defaultenv/login/bin/boot_timeout

diff --git a/common/Makefile b/common/Makefile
index 531000a..5eeb944 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -32,19 +32,21 @@ $(obj)/startup.o: include/generated/barebox_default_env.h
 $(obj)/env.o: include/generated/barebox_default_env.h
 
 ifeq ($(CONFIG_DEFAULT_ENVIRONMENT_GENERIC),y)
-DEFAULT_ENVIRONMENT_PATH = "defaultenv/common"
+DEFAULT_ENVIRONMENT_PATH-y = "defaultenv/common"
+
+DEFAULT_ENVIRONMENT_PATH-$(CONFIG_CMD_LOGIN) += "defaultenv/login"
 endif
 
 ifneq ($(CONFIG_DEFAULT_ENVIRONMENT_PATH),"")
-DEFAULT_ENVIRONMENT_PATH += $(CONFIG_DEFAULT_ENVIRONMENT_PATH)
+DEFAULT_ENVIRONMENT_PATH-y += $(CONFIG_DEFAULT_ENVIRONMENT_PATH)
 endif
 
-ENV_FILES := $(shell cd $(srctree); for i in $(DEFAULT_ENVIRONMENT_PATH); do find $${i} -type f -exec readlink -f '{}' \;; done)
+ENV_FILES := $(shell cd $(srctree); for i in $(DEFAULT_ENVIRONMENT_PATH-y); do find $${i} -type f -exec readlink -f '{}' \;; done)
 
 endif # ifdef CONFIG_DEFAULT_ENVIRONMENT
 
 barebox_default_env: $(ENV_FILES)
-	$(Q)$(srctree)/scripts/genenv $(srctree) $(objtree) $(DEFAULT_ENVIRONMENT_PATH)
+	$(Q)$(srctree)/scripts/genenv $(srctree) $(objtree) $(DEFAULT_ENVIRONMENT_PATH-y)
 
 include/generated/barebox_default_env.h: barebox_default_env
 	$(Q)cat $< | $(objtree)/scripts/bin2c default_environment > $@
diff --git a/defaultenv/common/bin/boot_timeout b/defaultenv/common/bin/boot_timeout
new file mode 100644
index 0000000..a469ef3
--- /dev/null
+++ b/defaultenv/common/bin/boot_timeout
@@ -0,0 +1,10 @@
+. /env/config
+
+echo
+echo -n "Hit any key to stop autoboot: "
+timeout -a $autoboot_timeout
+if [ $? != 0 ]; then
+	exit
+fi
+
+boot
diff --git a/defaultenv/common/bin/init b/defaultenv/common/bin/init
index b66f7d9..5c4ea00 100644
--- a/defaultenv/common/bin/init
+++ b/defaultenv/common/bin/init
@@ -24,11 +24,4 @@ if [ -f /env/bin/init_board ]; then
 	/env/bin/init_board
 fi
 
-echo
-echo -n "Hit any key to stop autoboot: "
-timeout -a $autoboot_timeout
-if [ $? != 0 ]; then
-	exit
-fi
-
-boot
+boot_timeout
diff --git a/defaultenv/login/bin/boot_timeout b/defaultenv/login/bin/boot_timeout
new file mode 100644
index 0000000..96a7690
--- /dev/null
+++ b/defaultenv/login/bin/boot_timeout
@@ -0,0 +1,15 @@
+. /env/config
+
+echo
+echo -n "Login in ${autoboot_timeout}s to stop autoboot: "
+echo
+login -t $autoboot_timeout
+
+echo
+echo -n "Hit any key to stop autoboot: "
+timeout -a $autoboot_timeout
+if [ $? != 0 ]; then
+	exit
+fi
+
+boot
-- 
1.7.5.4




More information about the barebox mailing list