Связь между драйверами низкого уровня и драйверами tty - PullRequest
4 голосов
/ 24 февраля 2012

Я писал драйвер консоли для Linux и наткнулся на интерфейс tty, который мне нужно настроить для этого драйвера.Я запутался в том, как tty драйверы связаны с драйверами низкого уровня.

Много раз корневая файловая система уже содержит множество tty-устройств.Мне интересно, как низкоуровневые устройства могут связываться с одним из существующих узлов tty в корневой файловой системе.

Например, /dev/tty7: узел в корневой файловой системе.
Как низкоуровневый драйвер устройства соединяется с этим узлом?Или это низкоуровневое устройство должно определять совершенно новое устройство tty?

1 Ответ

5 голосов
/ 27 марта 2012

Как устройства низкого уровня могут привязываться к одному из существующих узлов tty в корневой файловой системе?

Основные и вспомогательные номера консоли и драйверов tty жестко закодированы.Вы можете найти назначенные основные номера в вашей системе с помощью:

$ cat /proc/devices

Файлы устройства привязываются к драйверу устройства через утилиту mknod, например, файл устройства создается после загрузки драйвера устройства, а ненаоборотЧтобы создать файл устройства / dev / tty7, вы должны набрать

$ mknod /dev/tty7 c 4 7

Для ссылки в исходном коде ядра: drivers / tty / tty_io.c: tty_init выделяет основной и вспомогательныйномера для / dev / tty и / dev / console. tty_register_driver , по-видимому, выделяет старшие и младшие номера для группы других драйверов tty.Возможно, вы найдете ответ, если посмотрите на абонентов.

Если вы хотите получить общий обзор структуры подсистемы tty, тогда tty demysified и LDD3 Глава 18Драйверы TTY являются хорошими ресурсами.

...