getty: add the ability to pass options to getty
PATCH 1/1 getty: add the ability to pass options to getty
--- system/Config.in | 7 +++++++ system/system.mk | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-)
system/Config.in +7 -0
@@ -230,6 +230,13 @@ config BR2_TARGET_GENERIC_GETTY_BAUDRATE default "57600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 default "115200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 +config BR2_TARGET_GENERIC_GETTY_OPTIONS + string "other random options to pass to getty" + default "" + help + Any other flags you want to pass to gettey, + Refer to getty --help for details. + config BR2_TARGET_GENERIC_GETTY_TERM string "Value to assign the TERM environment variable" default "vt100"
system/system.mk +3 -2
@@ -5,6 +5,7 @@ TARGET_GENERIC_PASSWD_METHOD := $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD TARGET_GENERIC_GETTY := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) TARGET_GENERIC_GETTY_BAUDRATE := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) TARGET_GENERIC_GETTY_TERM := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM)) +TARGET_GENERIC_GETTY_OPTIONS:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_OPTIONS)) target-generic-securetty: grep -q '^$(TARGET_GENERIC_GETTY)$$' $(TARGET_DIR)/etc/securetty || \
@@ -29,13 +30,13 @@ target-root-passwd: $(SED) "s,^root:[^:]*:,root:$$TARGET_GENERIC_ROOT_PASSWD_HASH:," $(TARGET_DIR)/etc/shadow target-generic-getty-busybox: - $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \ + $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY_OPTIONS) $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \ $(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) $(TARGET_GENERIC_GETTY_TERM) #~' \ + $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(TARGET_GENERIC_GETTY) | tail -c+4)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY_OPTIONS) $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \ $(TARGET_DIR)/etc/inittab # Find commented line, if any, and remove leading '#'s
Signature · 1 line
1.7.9.5
PATCH 1/1 getty: add the ability to pass options to getty
Quoted 1 line · Assaf Inbal
Signed-off-by Assaf Inbal <[email protected]>
(for -next)
With some minor fixes, though:
Quoted 10 lines
--- system/Config.in | 7 +++++++ system/system.mk | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-)system/Config.in +0
-0
system/Config.in config BR2_TARGET_GENERIC_GETTY_BAUDRATE · line 237
Quoted 8 lines
system/Config.in +5
-0@@ -230,6 +230,13 @@ config BR2_TARGET_GENERIC_GETTY_BAUDRATE default "57600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 default "115200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 +config BR2_TARGET_GENERIC_GETTY_OPTIONS + string "other random options to pass to getty" + default "" + help + Any other flags you want to pass to gettey,
gettey -> getty
Quoted 10 lines
system/Config.in +2
-0+ Refer to getty --help for details. + config BR2_TARGET_GENERIC_GETTY_TERM string "Value to assign the TERM environment variable" default "vt100"system/system.mk +0
-0
system/system.mk TARGET_GENERIC_PASSWD_METHOD := $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD · line 8
Quoted 4 lines
system/system.mk +1
-0@@ -5,6 +5,7 @@ TARGET_GENERIC_PASSWD_METHOD := $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD TARGET_GENERIC_GETTY := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) TARGET_GENERIC_GETTY_BAUDRATE := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) TARGET_GENERIC_GETTY_TERM := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM)) +TARGET_GENERIC_GETTY_OPTIONS:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_OPTIONS))
Don't copy the incorrect coding style :-) Use = instead of := and put
spaces around it.
system/system.mk target-root-passwd: · line 33
Quoted 9 lines
system/system.mk +1
-1target-generic-securetty: grep -q '^$(TARGET_GENERIC_GETTY)$$' $(TARGET_DIR)/etc/securetty || \@@ -29,13 +30,13 @@ target-root-passwd: $(SED) "s,^root:[^:]*:,root:$$TARGET_GENERIC_ROOT_PASSWD_HASH:," $(TARGET_DIR)/etc/shadow target-generic-getty-busybox: - $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \ + $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY_OPTIONS) $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \
This line could really use some splitting... But maybe that's not the
responsibility of this patch.
Regards,
Arnout
Quoted 11 lines
system/system.mk +1
-1$(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) $(TARGET_GENERIC_GETTY_TERM) #~' \ + $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(TARGET_GENERIC_GETTY) | tail -c+4)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY_OPTIONS) $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \ $(TARGET_DIR)/etc/inittab # Find commented line, if any, and remove leading '#'s
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/1 getty: add the ability to pass options to getty
Hey,
Don't copy the incorrect coding style :-) Use = instead of := and put
Quoted 1 line
spaces around it.
Just out of curiosity, why would you rather I use =? Is it because that macro won't always be evaluated, or is there something else I'm missing?
BTW - Would you like me to submit an updated patch?
Good day,
Assaf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130822/5eb48482/attachment.html>
PATCH 1/1 getty: add the ability to pass options to getty
Hi Assaf,
Quoted 8 lines · Assaf Inbal
Hey,
Quoted 2 lines
Don't copy the incorrect coding style :-) Use = instead of := and put
spaces around it.Just out of curiosity, why would you rather I use =? Is it because that macro won't always be evaluated, or is there something else I'm missing?
Technically, in this case, both := and = are fine, and both produce the same result because the right-hand side is fixed and does not reference any other make variable.
The more unusual := is thus not really needed, and therefore it has become buildroot policy to use the simple = in all cases, with spaces as delimiter. This is also visually the most attractive.
Quoted 2 lines
BTW - Would you like me to submit an updated patch?
Yes please. Review the comments provided and send an updated patch marked as 'PATCH v2'.
Best regards,
Thomas
PATCH 1/1 getty: add the ability to pass options to getty
Hey,
Yes please. Review the comments provided and send an updated patch
Quoted 2 lines
marked as 'PATCH v2'.
Sadly, it seems that my git-send-email-foo isn't that good since it didn't attach my new patches to this thread.
In any case, I sent out two patches, one for cleaning up getty a bit as discussed, and the other for adding the original command line options that started this thread.
Good day,
Assaf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130825/cd3e1e00/attachment.html>
PATCH 1/1 getty: add the ability to pass options to getty
In reply to Assaf InbalQuoted 11 lines · Assaf Inbal
Signed-off-by Assaf Inbal <[email protected]>--- system/Config.in | 7 +++++++ system/system.mk | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-)system/Config.in +0
-0
system/Config.in config BR2_TARGET_GENERIC_GETTY_BAUDRATE · line 234
Quoted 5 lines
system/Config.in +2
-0@@ -230,6 +230,13 @@ config BR2_TARGET_GENERIC_GETTY_BAUDRATE default "57600" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 default "115200" if BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 +config BR2_TARGET_GENERIC_GETTY_OPTIONS + string "other random options to pass to getty"
I would remove the 'random': options you pass here are not random but probably well-chosen.
system/Config.in config BR2_TARGET_GENERIC_GETTY_BAUDRATE · line 242
Quoted 8 lines
system/Config.in +5
-0+ default "" + help + Any other flags you want to pass to gettey, + Refer to getty --help for details. + config BR2_TARGET_GENERIC_GETTY_TERM string "Value to assign the TERM environment variable" default "vt100"
There are now a number of getty-related config options in system/Config.in, but without any structure.
When the getty port is empty, no action is taken.
What about introducing a new bool option to determine if a getty needs to be started, with suboptions for port, baudrate, term, and user-configurable options?
Something like:
config BR2_TARGET_GENERIC_GETTY
bool "Run a getty (login prompt) after boot"
config BR2_TARGET_GENERIC_GETTY_PORT
bool "tty port"
depends on BR2_TARGET_GENERIC_GETTY
choice
prompt "baudrate"
depends on BR2_TARGET_GENERIC_GETTY
[baudrate options]
endchoice
config BR2_TARGET_GENERIC_GETTY_TERM
bool "TERM environment variable"
depends on BR2_TARGET_GENERIC_GETTY
config BR2_TARGET_GENERIC_GETTY_OPTIONS
string "other options to pass to getty"
depends on BR2_TARGET_GENERIC_GETTY
This creates some structure, and hides all non-relevant options when the user does not want a getty.
In this case, system/system.mk will need a few adaptations to check the new symbol instead of for the emptiness of _PORT.
Best regards,
Thomas
Quoted 35 lines
system/system.mk +3
-3@@ -5,6 +5,7 @@ TARGET_GENERIC_PASSWD_METHOD := $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD TARGET_GENERIC_GETTY := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT)) TARGET_GENERIC_GETTY_BAUDRATE := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE)) TARGET_GENERIC_GETTY_TERM := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM)) +TARGET_GENERIC_GETTY_OPTIONS:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_OPTIONS)) target-generic-securetty: grep -q '^$(TARGET_GENERIC_GETTY)$$' $(TARGET_DIR)/etc/securetty || \@@ -29,13 +30,13 @@ target-root-passwd: $(SED) "s,^root:[^:]*:,root:$$TARGET_GENERIC_ROOT_PASSWD_HASH:," $(TARGET_DIR)/etc/shadow target-generic-getty-busybox: - $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \ + $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY_OPTIONS) $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \ $(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) $(TARGET_GENERIC_GETTY_TERM) #~' \ + $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(TARGET_GENERIC_GETTY) | tail -c+4)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY_OPTIONS) $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \ $(TARGET_DIR)/etc/inittab # Find commented line, if any, and remove leading '#'s --1.7.9.5
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
PATCH 1/1 getty: add the ability to pass options to getty
Quoted 22 lines · Thomas De Schampheleire
There are now a number of getty-related config options in system/Config.in, but without any structure.
When the getty port is empty, no action is taken.
What about introducing a new bool option to determine if a getty needs to be started, with suboptions for port, baudrate, term, and user-configurable options?
Something like:config
BR2_TARGET_GENERIC_GETTY
bool "Run a getty (login prompt) after boot"config
BR2_TARGET_GENERIC_GETTY_PORT
bool "tty port"
depends onBR2_TARGET_GENERIC_GETTYchoice
prompt "baudrate"
depends onBR2_TARGET_GENERIC_GETTY[baudrate options]
endchoice
Quoted 7 lines
config
BR2_TARGET_GENERIC_GETTY_TERM
bool "TERM environment variable"
depends onBR2_TARGET_GENERIC_GETTYconfig
BR2_TARGET_GENERIC_GETTY_OPTIONS
string "other options to pass to getty"
depends onBR2_TARGET_GENERIC_GETTY
Sounds like a good plan. Except that the sub-options should be wrapped
in a if...endif construct instead of repeating 'depends on'.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F