在此博客,给出了推荐的串行内核参数,带显卡的PC。
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
,这不是矛盾的吗?“内核消息”和“来自 init 系统和系统记录器的消息”有什么区别?
我想知道:
- 这是为什么? 更新:为什么在多个终端之间没有得到相同的输出?
- 去哪儿
Messages from the init system and the system logger
? - ttyx 等虚拟控制台重定向到什么设备,为什么我只能在 qemu 的图形界面中看到它们,例如
Debian GNU/Linux 10 mindebian tty1
?
更新:正常情况下,我们会从内核和 rootfs 获取消息,内核的消息以时间戳开头内核消息,来自 init/rootfs 的消息以 OK 开头rootfs 消息。当我在博客中使用这个启动参数时,正如它所描述的那样:我只会从 qemu 图形窗口获取内核消息。
答案1
你问了几个问题。
这难道不是矛盾的吗?
就我个人而言,我认为没有矛盾。编辑:我没有正确阅读。你说得对,这是一个矛盾。我不是 100% 确定,但我相信所有控制台消息都应该发送到所有已配置的控制台。
“内核消息”和“来自初始化系统和系统记录器的消息”之间有什么区别?
内核消息由内核生成。来自 init 系统的消息由启动 Linux 发行版所涉及的进程生成。来自系统记录器的消息由正在运行的系统上的应用程序生成,这些应用程序将其消息发送到系统记录器。有些消息是重叠的,例如系统记录器也可能记录内核消息。
为什么是这样?
我不明白你说的“这个”是什么意思。
来自初始化系统和系统记录器的消息去哪里了?
系统日志记录器根据其配置将它们分发到各种日志文件中。如今许多发行版都运行两个系统日志记录器,这让情况变得更加复杂,即日志和rsyslogd. 目前最常用的 init 系统是systemd,用途日志记录初始化消息。
ttyx 等虚拟控制台重定向到什么设备,为什么我只能在 qemu 的图形界面中看到它们
Linux 在 PC 的图形屏幕上实现了控制台。这就是非串行控制台只能在图形界面上看到的原因。实际上,内核实现了几个名为 tty1、tty2 等的虚拟屏幕。使用命令chvt
或 ALT-Fx 组合键来选择显示哪个屏幕(其中 x 是屏幕编号)。
欲了解更多信息,请搜索互联网Linux 虚拟控制台或类似方法,并研究日志和rsyslogd也systemd,目前 Linux 服务器上流行的 init 系统。