在这篇博客中,它给出了一个推荐的串行内核参数,PCs with video card。
console=tty0 console=ttyS0,9600n8
它说Kernel messages will appear on both the first virtual terminal and the serial port. Messages from the init system and the system logger will appear only on the first serial port.
正如之前所说When multiple consoles are listed output is sent to all consoles and input is taken from the last listed console
,这不是矛盾吗?“内核消息”和“来自初始化系统和系统记录器的消息”有什么区别?
我想知道:
- 为什么是这样 ?更新:为什么在多个终端之间不能得到相同的输出?
- 去哪儿
Messages from the init system and the system logger
? - ttyx等虚拟控制台重定向到什么样的设备,为什么我只能在qemu的图形界面中看到,比如
Debian GNU/Linux 10 mindebian tty1
?
更新:在正常情况下,我们将收到来自内核和 rootfs 的消息,来自内核的消息以时间戳内核消息开头,来自 init/rootfs 的消息以 OK rootfs 消息开头。当我在博客中使用这个引导参数时,正如它所描述的那样:我只会从 qemu 图形窗口获取内核消息。
你在问几个问题。
就个人而言,我认为没有矛盾。编辑:我没有正确阅读此内容。你是对的,这是一个矛盾。我不是 100% 确定,但我相信所有控制台消息都应该发送到所有配置的控制台。
内核消息由内核生成。来自 init 系统的消息由启动 Linux 发行版所涉及的进程生成。来自系统记录器的消息由正在运行的系统上的应用程序生成,这些应用程序将它们的消息发送到系统记录器。有一些重叠,例如系统记录器也可能记录内核消息。
我不明白你所说的“这个”是什么意思。
系统记录器根据其配置将它们分发到各种日志文件。如今,许多发行版运行两个系统记录器,即journald和rsyslogd使得这变得更加复杂。现在最常用的初始化系统systemd使用journald来记录初始化消息。
Linux 在 PC 的图形屏幕上实现了一个控制台。这就是为什么非串口控制台只能在图形界面上看到的原因。实际上,内核实现了几个名为 tty1、tty2 等的虚拟屏幕。使用
chvt
命令或 ALT-Fx 组合键来选择显示哪个屏幕(其中 x 是屏幕编号)。有关更多信息,请在 Internet 上搜索linux 虚拟控制台或类似内容,并研究journald和rsyslogd以及systemd,这些天是 Linux 服务器上流行的 init 系统。