Символьный драйвер с class_create
Этот пример демонстрирует, как создать полноценное символьное устройство в Linux
с автоматическим созданием файла в /dev с помощью class_create и device_create.
Что происходит
Регистрируется символьное устройство через
register_chrdev().С помощью
class_createсоздаётся объект класса.device_create()создаёт узел устройства/dev/garvis_class.При загрузке модуля в
dmesgпоявляется сообщение об успешной регистрации.При выполнении операций
cat,echoиopen()— соответствующие сообщения логируются черезpr_info.
Проверка работы
После компиляции и установки:
sudo insmod char_driver_with_class.ko
ls -l /dev/garvis_class
echo "hello" > /dev/garvis_class
dmesg | tail
Удаление:
sudo rmmod char_driver_with_class
Пояснение: Зачем нужен class_create
Без class_create и device_create вы не сможете получить доступ к устройству через /dev.
Этот механизм взаимодействует с udev, который создает файл устройства в файловой системе.
Таким образом, этот драйвер — шаг к реальной разработке устройств, с которыми можно работать как с файлами.
class_create → udev → /dev/garvis_class