diff options
Diffstat (limited to 'term-utils')
-rw-r--r-- | term-utils/agetty.8 | 4 | ||||
-rw-r--r-- | term-utils/agetty.c | 17 |
2 files changed, 17 insertions, 4 deletions
diff --git a/term-utils/agetty.8 b/term-utils/agetty.8 index fcb1fd5fe..5a480808d 100644 --- a/term-utils/agetty.8 +++ b/term-utils/agetty.8 @@ -93,6 +93,10 @@ Automatically log in the specified user without asking for a username or passwor Using this option causes an \fB\-f \fIusername\fR option and argument to be added to the \fB/bin/login\fP command line. See \fB\-\-login\-options\fR, which can be used to modify this option's behavior. + +Note that \fB\-\-autologin\fP may affect the way how agetty initializes the +serial line, because on auto-login agetty does not read from the line and it +has no opportunity optimize the line setting. .TP \-c, \-\-noreset Do not reset terminal cflags (control modes). See \fBtermios\fP(3) for more diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 844220401..e22600e28 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -1264,13 +1264,22 @@ static void termio_init(struct options *op, struct termios *tp) * later on. */ + /* The defaul is set c_iflag in termio_final() according to chardata. + * Unfortunately, the chardata are not set according to the serial line + * if --autolog is enabled. In this case we do not read from the line + * at all. The best what we can do in this case is to keep c_iflag + * unmodified for --autolog. + */ + if (!op->autolog) { #ifdef IUTF8 - tp->c_iflag = tp->c_iflag & IUTF8; - if (tp->c_iflag & IUTF8) - op->flags |= F_UTF8; + tp->c_iflag = tp->c_iflag & IUTF8; + if (tp->c_iflag & IUTF8) + op->flags |= F_UTF8; #else - tp->c_iflag = 0; + tp->c_iflag = 0; #endif + } + tp->c_lflag = 0; tp->c_oflag &= OPOST | ONLCR; |