target: support generic getty with sysvinit inittabs
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 12 Dec 2010 21:53:52 +0000 (22:53 +0100)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 13 Dec 2010 23:25:18 +0000 (00:25 +0100)
In sysvinit inittab the "id" field (first field) must be no longer
than 4 bytes, and is not used by init to determine the output
terminal. Therefore, we adjust the strategy used to modify the inittab
file according to the getty configuration.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
target/generic/Makefile.in

index 1ef2a9d827d6dcb9902bd0c8326012e171158d05..3a750c3b443531051bef4b207cf758da90b2df5c 100644 (file)
@@ -11,10 +11,16 @@ target-generic-issue:
        mkdir -p $(TARGET_DIR)/etc
        echo "$(TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue
 
-target-generic-getty:
+target-generic-getty-busybox:
        $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) vt100 #~' \
                $(TARGET_DIR)/etc/inittab
 
+# In sysvinit inittab, the "id" must not be longer than 4 bytes, so we
+# skip the "tty" part and keep only the remaining.
+target-generic-getty-sysvinit:
+       $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(TARGET_GENERIC_GETTY) | tail -c+4)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) vt100 #~' \
+               $(TARGET_DIR)/etc/inittab
+
 ifneq ($(TARGET_GENERIC_HOSTNAME),)
 TARGETS += target-generic-hostname
 endif
@@ -24,5 +30,9 @@ TARGETS += target-generic-issue
 endif
 
 ifeq ($(BR2_TARGET_GENERIC_GETTY),y)
-TARGETS += target-generic-getty
+ifeq ($(BR2_PACKAGE_SYSVINIT),y)
+TARGETS += target-generic-getty-sysvinit
+else
+TARGETS += target-generic-getty-busybox
+endif
 endif