use*_*358 14 tty linux-device-driver linux-kernel embedded-linux
有一个名为的设备文件/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连接到不同的物理设备./dev/console如果USB HID键盘已插入console=且未配置为UART ,则可以读取.因此/dev/console== /dev/null似乎没什么意义.需要更多调查.我认为/sys/devices/virtual/tty/console/active这就是你要找的东西.