terminal_fix_size() queries the terminal for its dimensions with CSI 18 and DSR. On a virtual console that is pointless: the kernel renders the screen itself, so TIOCGWINSZ is already authoritative. It is also slow. PID 1 queries /dev/console from console_setup(), and writes there go through redirected_tty_write(), so while plymouth holds a TIOCCONS redirect the query never reaches the VT and no reply is ever generated. Each query then waits out CONSOLE_ANSI_SEQUENCE_TIMEOUT_USEC. Previously the write failed immediately with EAGAIN — the kernel forces O_NONBLOCK on /dev/console — so the query was abandoned at no cost; sinceba10d789a8it is retried until the timeout instead. On a Steam Deck booting with console=tty1 and plymouth the two queries cost 667ms, about a quarter of userspace boot time, and no log level shows it because main() runs console_setup() between log_close() and log_open(). So skip the query on a virtual console and keep the dimensions the kernel gave us, reporting success rather than an error: declining to ask is not a failure, and the "dimensions already match" path below returns 0 for the same reason. Note this also skips the query on a /dev/ttyN that would have answered, and does not help a serial console behind a TIOCCONS redirect. Fixes:ba10d789a8Fixes:d91a184509(cherry picked from commit4ca7ac0275)
System and Service Manager
Details
Most documentation is available on systemd's website.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release
