Имеется файл устройства с именем /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кажется мало смысла. Необходимо больше исследований.