Символьный драйвер с class_create

Этот пример демонстрирует, как создать полноценное символьное устройство в Linux с автоматическим созданием файла в /dev с помощью class_create и device_create.

Что происходит

  1. Регистрируется символьное устройство через register_chrdev().

  2. С помощью class_create создаётся объект класса.

  3. device_create() создаёт узел устройства /dev/garvis_class.

  4. При загрузке модуля в dmesg появляется сообщение об успешной регистрации.

  5. При выполнении операций 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