Как я могу найти, к какому физическому устройству /dev/console подключается?

Имеется файл устройства с именем /dev/console, (major,minor) которого (5,1). Когда я загружаюсь с последовательной консолью, он подключается к моему порту UART как /dev/ttyS0. Но когда я загружаюсь с отключенной последовательной консолью, /dev/console, похоже, подключается в другом месте, где /dev/ttyS0 всегда подключается к одному физическому устройству, а именно UART0. Есть ли какое-либо указание (например, что-то в /proc или /sys), показывающее такую ​​информацию? Я пробовал там, но ничего не нашел. Я начинаю отслеживать источник ядра Linux, чтобы прояснить их отношения. Может ли кто-нибудь дать мне несколько советов? Когда, где, как и что определять физическое устройство, к которому подключается /dev/console?

EDIT: последнее открытие:

  • /dev/console настраивается параметрами ядра console=, который, в свою очередь, используется getty для открытия stdin/stdout/stderr. Если не указано console=, /dev/null открывается как stdin/stdout/stderr. Но я не уверен, что они точно совпадают с /dev/console, что подразумевает, что /dev/console может подключаться к различным физическим устройствам.
  • /dev/console можно прочитать, если USB HID-клавиатура подключена, а console= не настроен как UART. Поэтому /dev/console == /dev/null кажется мало смысла. Необходимо больше исследований.

Ответ 1

Я думаю, что /sys/devices/virtual/tty/console/active - это то, что вы ищете.

Ответ 2

От http://man7.org/linux/man-pages/man4/console.4.html:      "Текущая консоль также рассматривается      /dev/console или /dev/tty 0, символьное устройство с большим номером 4      и младшее число 0.

Надеюсь, это было то, что вы искали.