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