如何找到连接到哪个物理设备/ dev / console?

时间:2013-03-19 06:55:43

标签: linux-kernel linux-device-driver embedded-linux tty

有一个名为/dev/console的设备文件,其(major,minor)(5,1)。 当我使用串行控制台启动时,它会像/dev/ttyS0那样连接到我的UART端口。 但是当我禁用串行控制台启动时,/dev/console似乎连接到其他地方,其中/dev/ttyS0始终连接到同一物理设备,即UART0。 是否有任何迹象(如/proc/sys中的某些内容)显示此类信息?我在那里试过但却找不到我想要的东西。 我开始追踪Linux内核源代码以澄清它们之间的关系。 任何人都可以给我一些提示吗?何时,何地,如何以及如何确定/dev/console连接的物理设备?

编辑:最新发现是:

  1. /dev/consoleconsole=内核参数配置,而getty则使用这些参数来打开stdin/stdout/stderr。如果未指定console=,则/dev/null将以stdin/stdout/stderr打开。但我不确定它们与/dev/console完全相同,这意味着/dev/console可以将其I / O连接到不同的物理设备。
  2. 如果插入USB HID键盘并且/dev/console未配置为UART,则可以读取console=。因此/dev/console == /dev/null似乎毫无意义。 需要更多调查。

2 个答案:

答案 0 :(得分:8)

我认为/sys/devices/virtual/tty/console/active正是您所寻找的。

答案 1 :(得分:0)

来自http://man7.org/linux/man-pages/man4/console.4.html:        “目前的控制台也是由        / dev / console或/ dev / tty0,主编号为4的字符设备        和次要编号0。“

我希望那就是你要找的东西。