什么是 mdev 以及如何在 Linux 中创建 /dev/* 节点?

什么是 mdev 以及如何在 Linux 中创建 /dev/* 节点?

我们的 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

答案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 和大多数发行版当前默认执行的操作。

相关内容