Назад | Перейти на главную страницу

Что такое mdev и как создавать узлы / dev / * в Linux?

Наше ядро ​​Linux - 2.6.31, работающее на встроенном процессоре MIPS с busybox.

Скрипт инициализации (rcS) запускает mdev с:

echo "/sbin/stbhotplug" > /proc/sys/kernel/hotplug
mdev -s

Кто-нибудь может мне сказать, что делает утилита Linux mdev?

Похоже, что он выполняет автоматическое горячее подключение, поскольку stbhotplug - это сценарий, который обрабатывает интерфейсы Ethernet.

Кроме того, у rootfs есть только консольное устройство, т.е. /dev/console это единственный файл в /dev.

Однако, когда система работает, /dev каталог заполнен файлами устройства (например, /dev/mtd, и т.д.).

Причина, по которой я спрашиваю, заключается в том, что иногда мы получаем ошибку, в которой сообщается, что /dev/ubi_ctrl не найден или /dev/ubi1 не найден.

Как и когда Linux создает эти устройства?

Спасибо.

mdev - это легкая альтернатива udev для использования во встроенных устройствах. Оба обрабатывают создание файлов устройств в /dev и запуск действий при наступлении определенных событий.

mdev в основном звонки mknod для набора предварительно настроенных файлов устройства.

Если у вас есть выбор, используйте вместо этого:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

который автоматически монтирует специальную файловую систему devtmpfs под /dev, и позволяет модулям автоматически создавать собственные файлы устройств на insmod, как показано на: https://stackoverflow.com/questions/5970595/how-to-create-a-device-node-from-the-init-module-code-of-a-linux-kernel-module/45531867#45531867

Это то, что Buildroot и большинство дистрибутивов в настоящее время делают по умолчанию.