Buildroot: создать таблицу устройств с неизвестным основным номером

У меня есть один драйвер, который получает основной номер из ядра Linux (основной номер назначается динамически).

Чтобы создать узел устройства для моего драйвера, я запускаю следующие шаги вручную

  • insmod my_driver

  • cat /proc/devices - Это знать, какой основной номер назначен

  • mknod /dev/myDevName -c Assigned_Major_Number 0

В конце концов, я должен использовать Buildroot для сборки моей файловой системы, которая должна включать мой драйвер. В Buildroot вы можете использовать файл таблицы устройств для создания узла устройства (вместо запуска mknod ... когда система Linux работает).

Недостающая часть, как упомянуть основной номер в файле таблицы устройств, поскольку у меня его еще нет (он будет назначен ядром linux, когда система будет работать)?!

Спасибо за вашу помощь

1 ответ

Пусть записи /dev будут созданы для вас динамически и автоматически. Статическая таблица слишком громоздка, когда у вас есть динамические числа.

Существует несколько методов управления динамическими /dev. От самого сложного и интересного до самого простого:

  • использование udev и systemd (как и во многих дистрибутивах для настольных компьютеров и серверов)
  • использование udev (если ваша система инициализации не systemd)
  • использование mdev от Busybox (как Udev, но проще и очень легкий)
  • смонтировать devtmpfs в /dev (демон не нужен, ядро ​​сделает это за вас)

Buildroot может быть настроен по вашему желанию. Просто введите make menuconfig -> System configuration -> /dev management, Подробности см. В разделе "Руководство / Управление dev".

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