Что такое 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 создает эти устройства?
Благодарю.
3 ответа
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
Это то, что Buildroot и большинство дистрибутивов в настоящее время делают по умолчанию.