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