Я пытаюсь разработать драйверы устройств Linux, и в качестве первой попытки я пытаюсь разработать драйвер устройства char, который имеет следующие параметры файла,
struct file_operations fops{
.open=open_fun,
.release=release_fun,
.write=write_fun,
.read=read_fun,
};
Когда я загружаю драйвер с помощью insmod
, Я вижу, что / proc / devices
перечисляет драйвер в разделе char devices, но я не могу найти его в / dev
. Поиск в Google предложил использовать mknod
для создания deivce в / dev
и связать его с основным и второстепенным драйвером. Однако попытка сделать это привела к ошибке «В разрешении отказано», даже если это было сделано в качестве суперпользователя.
Что мне делать, чтобы устройство появилось в / dev
при загрузке модуля ядра? Я пробовал как старую ( register_chrdev
), так и новую версию ( cdev_init & cdev_add
) зарегистрировать устройство, но ни одна из них не работает.
Спасибо,
Мир