我们的 Linux 内核是 2.6.31,运行在带有 busybox 的嵌入式 MIPS 处理器上。
初始化脚本(rcS)使用以下命令启动 mdev:
echo "/sbin/stbhotplug" > /proc/sys/kernel/hotplug
mdev -s
谁能告诉我 Linux 实用程序 mdev 的作用是什么?
它看起来像是自动热插拔,因为 stbhotplug 是一个处理以太网接口的脚本。
此外,我们所给出的 rootfs 只有一个控制台设备,即/dev/console
中唯一的文件/dev
。
然而当系统运行时,该/dev
目录中充满了设备文件(例如/dev/mtd
,等等)。
我询问的原因是我们偶尔会收到错误,报告称/dev/ubi_ctrl
未找到或未/dev/ubi1
找到。
Linux 如何或何时创建这些设备?
谢谢。
答案1
这是mdev 入门指南链接。
答案2
mdev 是 udev 的轻量级替代方案,适用于嵌入式设备。两者都处理设备文件的创建/dev
以及发生特定事件时的操作启动。
答案3
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 和大多数发行版当前默认执行的操作。