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


11

我们的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如何或何时创建这些设备?

谢谢。

Answers:



6

mdev是udev的轻巧替代品,可用于嵌入式设备。/dev当某些事件发生时,它们都处理设备文件的创建以及动作的开始。


因此,如果/dev未创建设备,可能是问题mdev还是时序问题?

是的,据我了解,两者都是正确的。但是我只写了答案,因为昨天我刚刚在一篇新闻文章中阅读了有关mdev的信息。通常,我没有经验,也无法提供任何进一步的帮助。这就是为什么我将我的答案发布为社区Wiki答案的开始的原因。

1

mdev基本上需要mknod一组预先配置的设备文件。

如果可以选择,请改用:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

会自动将特殊的devtmpfs文件系统挂载在下/dev,并允许模块在上自动创建自己的设备文件insmod,如下所示:https : //stackoverflow.com/questions/5970595/how-to-create-a-device-node-from初始化模块代码的Linux内核模块/ 45531867#45531867

这是Buildroot和大多数发行版当前默认情况下执行的操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.