mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 05:22:48 +07:00
Change tty default baud rate: 38400 -> 0, i.e. keep kernel default
This is a more sane default, and also what systems expect, and what other getty implementations support. I.e., unless specified, or set to 0, the tty baud rate is zero -- which means do not change speed at all. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
+6
-4
@@ -301,8 +301,9 @@ Syntax
|
||||
`tty [LVLS] <CMD> <ARGS> [noclear] [nowait]`
|
||||
The first variant of this option uses the built-in getty on the given
|
||||
TTY device DEV, in the given runlevels. The DEV may be the special
|
||||
keyword `@console`, which is very useful on embedded systems. Default
|
||||
baud rate is `38400`.
|
||||
keyword `@console`, or `console`, useful on embedded systems.
|
||||
|
||||
The default baud rate is 0, i.e., keep kernel default.
|
||||
|
||||
**Example:**
|
||||
```conf
|
||||
@@ -340,11 +341,12 @@ Syntax
|
||||
Embedded systems may want to enable automatic `DEV` by supplying the
|
||||
special `@console` device. This works regardless weather the system
|
||||
uses `ttyS0`, `ttyAMA0`, `ttyMXC0`, or anything else. Finit figures
|
||||
it out by querying sysfs: `/sys/class/tty/console/active`.
|
||||
it out by querying sysfs: `/sys/class/tty/console/active`. The speed
|
||||
can be omitted to keep the kernel default.
|
||||
|
||||
**Example:**
|
||||
```conf
|
||||
tty [12345] @console 115200 noclear vt220
|
||||
tty [12345] @console noclear vt220
|
||||
```
|
||||
|
||||
On really bare bones systems Finit offers a fallback shell, which
|
||||
|
||||
+5
-7
@@ -369,15 +369,12 @@ pid_t run_getty(char *tty, char *baud, char *term, int noclear, int nowait, stru
|
||||
|
||||
pid = fork();
|
||||
if (!pid) {
|
||||
speed_t speed = B38400;
|
||||
|
||||
if (baud && baud[0]) {
|
||||
speed = stty_parse_speed(baud);
|
||||
if (B0 == speed)
|
||||
logit(LOG_CRIT, "TTY %s: Invalid speed %s", tty, baud);
|
||||
}
|
||||
speed_t speed;
|
||||
|
||||
speed = stty_parse_speed(baud);
|
||||
logit(LOG_INFO, "Starting built-in getty on %s, speed %u", tty, speed);
|
||||
prepare_tty(tty, speed, "tty", rlimit);
|
||||
|
||||
if (activate_console(noclear, nowait))
|
||||
_exit(getty(tty, speed, term, NULL));
|
||||
}
|
||||
@@ -415,6 +412,7 @@ pid_t run_getty2(char *tty, char *cmd, char *args[], int noclear, int nowait, st
|
||||
dup2(fd, STDERR_FILENO);
|
||||
|
||||
/* Dunno speed, tell stty() to not mess with it */
|
||||
logit(LOG_INFO, "Starting external getty on %s, speed %u", tty, B0);
|
||||
prepare_tty(tty, B0, "getty", rlimit);
|
||||
|
||||
if (ioctl(STDIN_FILENO, TIOCSCTTY, 1) < 0)
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <sys/ttydefaults.h> /* Not included by default in musl libc */
|
||||
#include <termios.h>
|
||||
|
||||
/* B0 means; keep kernel default */
|
||||
speed_t stty_parse_speed(char *baud)
|
||||
{
|
||||
char *ptr;
|
||||
@@ -66,6 +67,9 @@ speed_t stty_parse_speed(char *baud)
|
||||
{ 4000000, B4000000 },
|
||||
};
|
||||
|
||||
if (!baud || !baud[0])
|
||||
return B0;
|
||||
|
||||
errno = 0;
|
||||
val = strtoul(baud, &ptr, 10);
|
||||
if (errno || ptr == baud)
|
||||
|
||||
Reference in New Issue
Block a user