[systemd-devel] [PATCH] getty-generator: Enable getty on all active serial consoles.
Michael Marineau
michael.marineau at coreos.com
Thu Aug 22 18:53:39 PDT 2013
Greetings, sent this last week but didn't get any feedback.
Is this change acceptable for systemd or is there a particular reason for
not starting gettys on all active consoles?
On Fri, Aug 16, 2013 at 8:28 PM, Michael Marineau <
michael.marineau at coreos.com> wrote:
> This enables a getty on active kernel consoles even when they are not
> the last one specified on the kernel command line and mapped to
> /dev/console. Now the order "console=ttyS0 console=tty0" works in
> addition to "console=tty0 console=ttyS0".
> ---
>
> I'm not sure if there is a particular reason for the more limited existing
> behavior but it took me by surprise.
>
> src/getty-generator/getty-generator.c | 37
> ++++++++++++++++++++++-------------
> 1 file changed, 23 insertions(+), 14 deletions(-)
>
> diff --git a/src/getty-generator/getty-generator.c
> b/src/getty-generator/getty-generator.c
> index 4b7a60a..6c93806 100644
> --- a/src/getty-generator/getty-generator.c
> +++ b/src/getty-generator/getty-generator.c
> @@ -122,33 +122,42 @@ int main(int argc, char *argv[]) {
> }
>
> if (read_one_line_file("/sys/class/tty/console/active", &active)
> >= 0) {
> - const char *tty;
> -
> - tty = strrchr(active, ' ');
> - if (tty)
> - tty ++;
> - else
> - tty = active;
> -
> - /* Automatically add in a serial getty on the kernel
> - * console */
> - if (isempty(tty) || tty_is_vc(tty))
> - free(active);
> - else {
> + char *w, *state;
> + size_t l;
> +
> + /* Automatically add in a serial getty on all active
> + * kernel consoles */
> + FOREACH_WORD(w, l, active, state) {
> + char *tty;
> int k;
>
> + tty = strndup(w, l);
> + if (!tty) {
> + log_oom();
> + free(active);
> + r = EXIT_FAILURE;
> + goto finish;
> + }
> +
> + if (isempty(tty) || tty_is_vc(tty)) {
> + free(tty);
> + continue;
> + }
> +
> /* We assume that gettys on virtual terminals are
> * started via manual configuration and do this
> magic
> * only for non-VC terminals. */
>
> k = add_serial_getty(tty);
> - free(active);
>
> if (k < 0) {
> + free(tty);
> + free(active);
> r = EXIT_FAILURE;
> goto finish;
> }
> }
> + free(active);
> }
>
> /* Automatically add in a serial getty on the first
> --
> 1.8.1.5
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20130822/4d1a32d5/attachment.html>
More information about the systemd-devel
mailing list