有一个名为/dev/console
的设备文件,其(major,minor)
为(5,1)
。
当我使用串行控制台启动时,它会像/dev/ttyS0
那样连接到我的UART端口。
但是当我禁用串行控制台启动时,/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连接到不同的物理设备。 /dev/console
未配置为UART,则可以读取console=
。因此/dev/console
== /dev/null
似乎毫无意义。
需要更多调查。答案 0 :(得分:8)
我认为/sys/devices/virtual/tty/console/active
正是您所寻找的。 p>
答案 1 :(得分:0)
来自http://man7.org/linux/man-pages/man4/console.4.html: “目前的控制台也是由 / dev / console或/ dev / tty0,主编号为4的字符设备 和次要编号0。“
我希望那就是你要找的东西。