Как получить доступ к динамическому символьному устройству из пространства пользователя?

register_chrdev() Функция в ядре регистрирует символьное устройство:

int register_chrdev(unsigned  int  major,  const  char*name,
 struct file_operations*ops));

Если major является 0 ядро динамически распределяет старший номер, а функция регистра возвращает его.

Теперь давайте предположим, что модуль foo.ko хочет использовать /dev/foo с динамическим основным номером. Как пользовательское пространство узнает, какой основной номер передать mknod создавать /dev/foo?

1 ответ

Решение

Как только символьное устройство регистрируется с динамическим старшим номером, соответствующая информация появляется в /proc/devices и, таким образом, может быть извлечено приложением / сценарием пользовательского пространства для создания соответствующего узла.

В качестве лучшего примера вы можете обратиться к книге драйверов устройств Linux (3-е издание), например, к сценарию для чтения /proc/devices показано на этой странице.

Другие вопросы по тегам