有一个设备文件叫做
编辑:最新的发现是:
/dev/console
,其(major,minor)
是(5,1)
。
当我使用串口控制台进行引导时,它会连接到我的UART端口,就像/dev/ttyS0
一样。
但是当我禁用串口控制台进行引导时,/dev/console
似乎连接到其他地方,而/dev/ttyS0
始终连接到同一物理设备,即UART0
。是否有任何指示(比如/proc
或/sys
中的信息)显示这样的信息?我已经尝试了那里,但没有找到我想要的东西。
我开始跟踪Linux内核源代码以澄清它们之间的关系。有人能给我一些提示吗?何时、在哪里、如何以及确定/dev/console
连接到哪个物理设备?编辑:最新的发现是:
/dev/console
由内核参数的console=
配置,getty
使用该配置打开stdin/stdout/stderr
。如果未指定console=
,则将/dev/null
作为stdin/stdout/stderr
打开。但我不确定它们与/dev/console
是否完全相同,这意味着/dev/console
的I/O可以连接到不同的物理设备。- 如果插入USB HID键盘并且未将
console=
配置为UART,则可以读取/dev/console
。因此,/dev/console
==/dev/null
似乎没有多少意义。 需要更多调查。
console=
参数。 - sawdustinit
,然后传递到getty_main()
,这是busybox
中getty
的实现。相关部分是关闭原始标准输入,然后根据传递的参数打开一个新的标准输入。因此,我正在寻找一种方法,可以从文件描述符中检索路径;因为我想知道如果没有指定console=
,那么“默认”设备是什么。 - user1937358/sys/dev/char/5:1/active
吗?它应该包含实际设备的名称。 - Niall C.tty
命令会在使用 HID 设备时显示/dev/console
。 - user1937358