Intereting Posts
Вариант LILO vga как установить и использовать несколько параметров в одной переменной окружающей среды в рыбной раковине Linux Mint 16 MATE – Wi-Fi отключен аппаратным переключателем Перемещение старых версий файлов в другую папку с помощью скрипта Git висит в то время как источник клонирования Установка openjdk-7-jdk не обновляет java (это еще версия 1.6) Как разрешить изменение раскладки клавиатуры с блокировкой клавиатуры Сколько Xfce4 является GTK3? Как я могу установить мой .vimrc, какую ОС я использую? Почему «telnet» буфер FTP управляет линиями подключения? AIX 6.1, начиная xhost + из inittab во время загрузки Linux Mint 18 Cinnamon по умолчанию загружается в оболочку / командную строку / отключает графический интерфейс Хотите заменить слова пространством в нескольких файлах, используя SED commmand Если [является встроенным и [[является ключевым словом, то что есть ((? Обрезание изображения в формате JPG

Почему я должен вызывать mknod извне, а не непосредственно в моем драйвере?

Прочитав все книги / статьи / учебные пособия / примеры на драйверах alloc_chrdev_region() устройств, которые я смог найти, они все освещают, как получить большое число в моем коде драйвера, и все говорят, что я делаю это динамически, вызывая alloc_chrdev_region() . Чтобы создать фактический узел устройства, все они говорят мне, что я вызываю mknod вне кода драйвера вручную или в скрипте. Одна ссылка хочет, чтобы мой водитель напечатал основной номер. Другой хочет, чтобы я использовал awk on /proc/devices чтобы найти основное число. Существует упоминание функции mknod() , но она, по-видимому, предназначена для использования в коде userland.

Мне явно не хватает чего-то, так как я не понимаю, почему у моего драйвера нет возможности быть автономным, т. modprobe my_driver Я делаю modprobe my_driver и заканчиваю, скажем, /dev/my_driver созданный без необходимости делать что-либо остальное.

Командная пара device_create и class_create делают трюк в Linux. Проверьте https://stackoverflow.com/questions/5970595/create-a-device-node-in-code

Unix традиционно придерживается традиции «механизм, а не политика». В случае драйверов устройств это означает, что идентификатор драйвера в ядре – это только номер основного / младшего устройства. Именование устройства («политика *») с использованием mknod оставлено в пространстве пользователя.