Instead of requiring exactly one serial device and assuming ttyS0, extract the COM port index from the ACPI device path and use the uart I/O port address format for the console= kernel argument. On x86, the ACPI UID for PNP0501 (16550 UART) maps directly to the COM port number: UID 0 = COM1 (0x3F8), UID 1 = COM2 (0x2F8), etc. The I/O port addresses are fixed in the kernel (see arch/x86/include/asm/serial.h). Using the console=uart,io,<addr> format (see Documentation/admin-guide/kernel-parameters.txt) addresses the UART by I/O port directly rather than relying on ttyS naming, and also provides early console output before the full serial driver loads. Restrict the entire serial console auto-detection to x86. On non-x86 (e.g. ARM with PL011 UARTs), displays may be available without GOP (e.g. simple-framebuffer via device tree), serial device indices are assigned dynamically during probe rather than being fixed to I/O port addresses, and the kernel has its own console auto-detection via DT stdout-path. When ConOut has no device path (ConSplitter), all text output handles are enumerated. If multiple handles have PNP0501 UART nodes with different UIDs, bail out rather than guessing. Add ACPI_DP device path subtype, ACPI_HID_DEVICE_PATH struct, and EISA_PNP_ID() macro to device-path.h for parsing ACPI device path nodes. Remove MSG_UART_DP, device_path_has_uart(), count_serial_devices() and proto/serial-io.h (no longer needed). Move all the console logic to console.c as well.
System and Service Manager
Details
Most documentation is available on systemd's web site.
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
