有一个设备文件/dev/console
叫. 当我使用串行控制台启动时,它会连接到我的 UART 端口。但是当我在禁用串行控制台的情况下启动时,似乎连接到其他地方,那里总是连接到同一个物理设备,即. 是否有任何指示(如或中的内容)显示此类信息?我在那里尝试过,但没有找到我想要的。我开始追踪 Linux 内核源代码以澄清它们之间的关系。谁能给我一些提示?何时、何地、如何以及如何确定连接的物理设备?(major,minor)
(5,1)
/dev/ttyS0
/dev/console
/dev/ttyS0
UART0
/proc
/sys
/dev/console
编辑:最新发现是:
- 由内核参数
/dev/console
配置,console=
而内核参数又被用于getty
打开stdin/stdout/stderr
。如果console=
指定 no,/dev/null
则打开为stdin/stdout/stderr
. 但我不确定它们是否与 完全相同/dev/console
,这意味着/dev/console
它的 I/O 可以连接到不同的物理设备。 - 如果 USB HID 键盘已插入且未配置为 UART ,
/dev/console
则可以读取。console=
因此/dev/console
==/dev/null
似乎没有什么意义。需要更多调查。