fragen stichworte

Was ist mdev und wie werden die / dev / * -Knoten unter Linux erstellt?

Unser Linux-Kernel ist 2.6.31 und läuft auf einem eingebetteten MIPS-Prozessor mit busybox.

Das Initialisierungsskript (rcS) startet mdev mit:

echo "/sbin/stbhotplug" >/proc/sys/kernel/hotplug
mdev -s

Kann mir jemand sagen, was das Linux-Dienstprogramm mdev macht?

Es sieht so aus, als würde es automatisch ein Hot-Plugging durchführen, da der stbhotplug ein Skript für Ethernet-Schnittstellen ist.

Außerdem haben die angegebenen rootfs nur ein Konsolengerät, d. h. /dev/console ist die einzige Datei in /dev.

Wenn das System jedoch ausgeführt wird, enthält das Verzeichnis /dev viele Gerätedateien (z. B. /dev/mtd usw.).

Der Grund, warum ich frage, ist, dass wir gelegentlich einen Fehler erhalten, in dem berichtet wird, dass /dev/ubi_ctrl nicht gefunden wird oder /dev/ubi1 nicht gefunden wird.

Wie oder wann erstellt Linux diese Geräte?

Danke.

antworten

mdev ist eine leichte Alternative zu udev für Embedded-Geräte. Beide übernehmen die Erstellung von Gerätedateien in /dev und das Starten von Aktionen, wenn bestimmte Ereignisse auftreten.

Hier ist ein Link zum mdev-Primer.

mdev ruft grundsätzlich mknod für eine Reihe vorkonfigurierter Gerätedateien auf.

Wenn Sie eine Auswahl haben, verwenden Sie stattdessen:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

, das das spezielle devtmpfs-Dateisystem automatisch unter /dev einbindet und es den Modulen erlaubt, automatisch ihre eigenen Gerätedateien auf insmod zu erstellen, wie unter https://stackoverflow.com/questions/5970595/how angezeigt -erstellen-ein-Gerät-Knoten-aus-dem-init-Modul-Code-of-a-linux-Kernel-Modul/45531867 # 45531867

Dies ist, was Buildroot und die meisten Distributionen derzeit standardmäßig tun.