Che cos'è mdev e come vengono creati i nodi / dev / * in Linux?


11

Il nostro kernel Linux è 2.6.31 in esecuzione su un processore MIPS incorporato con busybox.

Lo script di inizializzazione (rcS) avvia mdev con:

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

Qualcuno può dirmi cosa fa l'utility Linux mdev?

Sembra che si inserisca automaticamente a caldo poiché lo stbhotplug è uno script che gestisce le interfacce Ethernet.

Inoltre, i rootfs che ci sono stati dati hanno solo un dispositivo console, cioè /dev/consoleè l'unico file in /dev.

Tuttavia, quando il sistema è in esecuzione, la /devdirectory è piena di file del dispositivo (ad es /dev/mtd., Ecc.).

Il motivo per cui chiedo è che occasionalmente riceviamo un errore per cui viene segnalato che /dev/ubi_ctrlnon è stato trovato o /dev/ubi1non è stato trovato.

Come o quando Linux crea questi dispositivi?

Grazie.

Risposte:



6

mdev è un'alternativa leggera a udev per l'utilizzo in dispositivi integrati. Entrambi gestiscono la creazione di file di dispositivo /deve l'avvio di azioni quando si verificano determinati eventi.


Quindi, se i /devdispositivi non vengono creati, potrebbe essere un problema mdevo un problema di temporizzazione?

Sì, per quanto ne capisco entrambi potrebbero essere veri. Ma ho scritto la risposta solo perché avevo appena letto di mdev in un articolo di notizie ieri. Generalmente non ne ho esperienza e non posso fornire ulteriore assistenza. Ecco perché ho pubblicato la mia risposta come kick-start per una risposta wiki della community.

1

mdevrichiede sostanzialmente mknoduna serie di file di dispositivo preconfigurati.

Se hai una scelta, usa invece:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

che monta automaticamente lo speciale filesystem devtmpfs in /dev, e consente ai moduli di creare automaticamente i propri file di dispositivo insmod, come mostrato su: /programming/5970595/how-to-create-a-device-node-from -la-init-module-codice-di-un-linux-kernel-module / 45531867 # 45531867

Questo è ciò che Buildroot e la maggior parte delle distro attualmente fanno di default.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.