皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux 6.15 为那些在没有虚拟终端的情况下构建内核的人获得新选择

为 Linux 6.15 内核提交的 printk 更改引入了一个新的 “NULL_TTY_DEFAULT_CONSOLE” Kconfig 构建时选项,允许空 TTY 成为那些在没有虚拟终端 (VT) 支持的情况下构建 Linux 内核的用户的默认 TTY。

长期以来,人们能够通过 “CONFIG_VT” 开关构建不支持 VT 的 Linux 内核,但在这种情况下,默认输出变为串行控制台。使用新 CONFIG_NULL_TTY_DEFAULT_CONSOLE,null TTY 输出可以成为这些无 VT 内核配置中的默认值。

Linux 6.15 为那些在没有虚拟终端的情况下构建内核的人获得新选择

Adam Simonelli 的补丁详细说明

“如果启用了 CONFIG_NULL_TTY_DEFAULT_CONSOLE,并且禁用了 CONFIG_VT,则 ttynull 将根据链接顺序成为默认的主控制台设备。

ttynull 将是唯一通常启用此选项的控制台设备。一些架构确实会调用 add_preferred_console(),这可能会添加另一个控制台。

许多发行版都启用了 CONFIG_VT。在经过测试的桌面硬件上,如果禁用了 CONFIG_VT,则默认控制台设备将回退到 /dev/ttyS0 而不是 /dev/tty。

这可能会导致用户空间问题和硬件问题:

1. 用户空间问题包括 /dev/ttyS0 断开连接的情况,以及 TCGETS ioctl(一些用户空间库用作探测以确定文件是否为 tty)在 /dev/console 上调用失败。在 /dev/console 上调用 isatty() 并获得不正确的 false 值的程序可能会跳过预期的日志记录到 /dev/console。

2. 硬件问题包括:如果用户将科学仪器或其他设备连接到 /dev/ttyS0 端口,并且他们要升级到禁用 CONFIG_VT 选项的内核,则内核日志将发送到连接到 /dev/ttyS0 的设备,除非他们手动编辑其内核命令行。

新的 CONFIG_NULL_TTY_CONSOLE 选项将为用户和发行版维护者提供避免这种情况的选项。禁用 CONFIG_VT 并启用 CONFIG_NULL_TTY_CONSOLE 将确保默认内核控制台行为默认不依赖于硬件配置,并避免在连接到 /dev/ttyS0 串行端口的设备上出现意外的新行为。

此选项是 Linux 6.15 内核的 printk 更改的一部分。另外,这个 pull 还引入了一个新的 “printk.debug_non_panic_cpus” 选项,用于在内核崩溃期间存储来自非 panic CPU 的 printk 消息。

登录

注册