summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/ar71xx/base-files/etc/inittab2
-rwxr-xr-xtarget/linux/ar71xx/base-files/etc/uci-defaults/inittab-console-fixup25
2 files changed, 25 insertions, 2 deletions
diff --git a/target/linux/ar71xx/base-files/etc/inittab b/target/linux/ar71xx/base-files/etc/inittab
index af4bf80dc..17f829f6d 100644
--- a/target/linux/ar71xx/base-files/etc/inittab
+++ b/target/linux/ar71xx/base-files/etc/inittab
@@ -1,4 +1,2 @@
::sysinit:/etc/init.d/rcS S boot
::shutdown:/etc/init.d/rcS K shutdown
-ttyS0::askfirst:/bin/ash --login
-ttyATH0::askfirst:/bin/ash --login
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/inittab-console-fixup b/target/linux/ar71xx/base-files/etc/uci-defaults/inittab-console-fixup
new file mode 100755
index 000000000..4836817be
--- /dev/null
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/inittab-console-fixup
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+
+enable_console_login() {
+ local cons=$1
+ local initline="$cons::askfirst:/bin/ash --login"
+
+ grep -qs "^$initline" /etc/inittab || {
+ echo "$initline" >> /etc/inittab
+ sync
+ kill -HUP 1
+ }
+}
+
+inittab_console_fixup() {
+ for cons in ttyS0 ttyATH0; do
+ grep -qs "console=$cons" /proc/cmdline && {
+ enable_console_login $cons
+ }
+ done
+}
+
+inittab_console_fixup