14

有一个设备文件/dev/console叫. 当我使用串行控制台启动时,它会连接到我的 UART 端口。但是当我在禁用串行控制台的情况下启动时,似乎连接到其他地方,那里总是连接到同一个物理设备,即. 是否有任何指示(如或中的内容)显示此类信息?我在那里尝试过,但没有找到我想要的。我开始追踪 Linux 内核源代码以澄清它们之间的关系。谁能给我一些提示?何时、何地、如何以及如何确定连接的物理设备?(major,minor)(5,1)/dev/ttyS0/dev/console/dev/ttyS0UART0/proc/sys/dev/console

编辑:最新发现是:

  1. 由内核参数/dev/console配置,console=而内核参数又被用于getty打开stdin/stdout/stderr。如果console=指定 no,/dev/null则打开为stdin/stdout/stderr. 但我不确定它们是否与 完全相同/dev/console,这意味着/dev/console它的 I/O 可以连接到不同的物理设备。
  2. 如果 USB HID 键盘已插入且未配置为 UART ,/dev/console则可以读取。console=因此/dev/console==/dev/null似乎没有什么意义。需要更多调查。
4

2 回答 2

9

我想/sys/devices/virtual/tty/console/active这就是你要找的。

于 2013-03-19T07:26:08.727 回答
0

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

我希望这就是你要找的。

于 2014-02-26T00:04:54.130 回答