Qu'est-ce que mdev et comment les nœuds / dev / * sont-ils créés sous Linux?


11

Notre noyau Linux est 2.6.31 fonctionnant sur un processeur MIPS intégré avec busybox.

Le script d'initialisation (rcS) démarre mdev avec:

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

Quelqu'un peut-il me dire ce que fait l'utilitaire Linux mdev?

Il semble qu'il effectue une connexion à chaud automatique, car le stbhotplug est un script qui gère les interfaces Ethernet.

De plus, les rootfs qui nous ont été fournis n'ont qu'un périphérique console, c'est /dev/console-à- dire le seul fichier /dev.

Cependant, lorsque le système est en cours d'exécution, le /devrépertoire est plein de fichiers de périphérique (par exemple /dev/mtd, etc.).

La raison pour laquelle je demande, c'est que nous obtenons parfois une erreur par laquelle il est signalé qu'il /dev/ubi_ctrln'est pas trouvé ou /dev/ubi1n'est pas trouvé.

Comment ou quand Linux crée-t-il ces périphériques?

Merci.

Réponses:



6

mdev est une alternative légère à udev pour une utilisation dans les appareils embarqués. Les deux gèrent la création de fichiers de périphérique /devet le démarrage d'actions lorsque certains événements se produisent.


Donc, si les /devappareils ne sont pas créés, cela pourrait-il être un problème mdevou un problème de timing?

Oui, autant que je sache, les deux pourraient être vrais. Mais je n'ai écrit la réponse que parce que je venais de lire sur mdev dans un article de presse hier. En règle générale, je n'en ai aucune expérience et je ne peux apporter aucune aide supplémentaire. C'est pourquoi j'ai publié ma réponse comme un coup de pouce pour une réponse wiki communautaire.

1

mdevappelle essentiellement mknodun ensemble de fichiers de périphériques préconfigurés.

Si vous avez le choix, utilisez plutôt:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

qui monte automatiquement le système de fichiers spécial devtmpfs sous /devet permet aux modules de créer automatiquement leurs propres fichiers de périphérique insmod, comme indiqué sur: /programming/5970595/how-to-create-a-device-node-from -le-module-init-code-d'un-module-noyau-linux / 45531867 # 45531867

C'est ce que Buildroot et la plupart des distributions font actuellement par défaut.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.