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


11

Наше ядро ​​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 создает эти устройства?

Спасибо.

Ответы:



6

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


Так что, если /devустройства не создаются, может быть проблема mdevили проблема синхронизации?

Да, насколько я понимаю, оба могут быть правдой. Но я написал ответ только потому, что вчера прочитал о mdev в одной из новостных статей. Обычно я не имею опыта и не могу оказать какую-либо дальнейшую помощь. Вот почему я опубликовал свой ответ как старт для ответа сообщества вики.

1

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

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

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

которая автоматически монтирует специальную файловую систему devtmpfs /devи позволяет модулям автоматически создавать свои собственные файлы устройств insmod, как показано по адресу: /programming/5970595/how-to-create-a-device-node-from -The-INIT-модуль-кода в своем Linux-ядро-модуль / 45531867 # 45531867

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.