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


11

Unser Linux-Kernel 2.6.31 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 Hot-Plugging durchführen, da der stbhotplug ein Skript ist, das Ethernet-Schnittstellen handhabt.

Außerdem hat das Rootfs, das wir erhalten haben, nur ein Konsolengerät, dh es /dev/consoleist die einzige Datei in /dev.

Wenn das System ausgeführt wird, ist das /devVerzeichnis jedoch voll mit Gerätedateien (z /dev/mtd. B. usw.).

Der Grund, den ich frage, ist, dass wir gelegentlich einen Fehler erhalten, bei dem gemeldet wird, dass er /dev/ubi_ctrlnicht oder /dev/ubi1nicht gefunden wurde.

Wie oder wann erstellt Linux diese Geräte?

Vielen Dank.

Antworten:



6

mdev ist eine leichte Alternative zu udev für die Verwendung in eingebetteten Geräten. Beide übernehmen das Erstellen von Gerätedateien /devund das Starten von Aktionen, wenn bestimmte Ereignisse eintreten.


Wenn /devalso keine Geräte erstellt werden, kann dies ein Problem mdevoder ein Zeitproblem sein?

Ja, soweit ich verstehe, könnten beide wahr sein. Aber ich habe die Antwort nur geschrieben, weil ich gestern in einem Nachrichtenartikel über mdev gelesen hatte. Generell habe ich keine Erfahrung damit und kann keine weitere Hilfe geben. Deshalb habe ich meine Antwort als Kick-Start für eine Community-Wiki-Antwort veröffentlicht.

1

mdevmknoderfordert grundsätzlich eine Reihe vorkonfigurierter Gerätedateien.

Wenn Sie eine Wahl haben, verwenden Sie stattdessen:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

Dadurch wird das spezielle Dateisystem devtmpfs automatisch unter bereitgestellt /dev, und Module können automatisch ihre eigenen Gerätedateien erstellen insmod, wie unter /programming/5970595/how-to-create-a-device-node-from gezeigt -der-Init-Modul-Code-eines-Linux-Kernel-Moduls / 45531867 # 45531867

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.