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".