Apa itu mdev dan bagaimana cara / dev / * node dibuat di Linux?


11

Kernel Linux kami 2.6.31 berjalan pada prosesor MIPS tertanam dengan busybox.

Skrip inisialisasi (rcS) mulai mdev dengan:

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

Adakah yang bisa memberitahu saya apa yang dilakukan utilitas Linux mdev?

Sepertinya tidak melakukan hot plugging secara otomatis karena stbhotplug adalah skrip yang menangani antarmuka ethernet.

Juga, rootfs kita telah diberikan hanya memiliki perangkat konsol yaitu /dev/consolesatu-satunya file di /dev.

Namun, ketika sistem sedang berjalan, /devdirektori penuh dengan file perangkat (misalnya /dev/mtd, dll.).

Alasan saya bertanya adalah bahwa kadang-kadang kita mendapatkan kesalahan di mana dilaporkan /dev/ubi_ctrltidak ditemukan atau /dev/ubi1tidak ditemukan.

Bagaimana atau kapan Linux membuat perangkat ini?

Terima kasih.

Jawaban:



6

mdev adalah alternatif ringan untuk udev untuk penggunaan di perangkat yang disematkan. Keduanya menangani pembuatan file perangkat /devdan memulai tindakan saat peristiwa tertentu terjadi.


Jadi jika /devperangkat tidak sedang dibuat, mungkin ada masalah dengan mdevatau masalah waktu?

Ya, sejauh yang saya mengerti keduanya bisa benar. Tetapi saya hanya menulis jawabannya karena saya baru saja membaca tentang mdev di sebuah artikel berita kemarin. Secara umum saya tidak punya pengalaman dengan itu dan tidak bisa memberikan bantuan lebih lanjut. Itu sebabnya saya memposting jawaban saya sebagai awal untuk jawaban wiki komunitas.

1

mdevpada dasarnya panggilan mknoduntuk satu set file perangkat pra-konfigurasi.

Jika Anda punya pilihan, gunakan saja:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

yang secara otomatis memasang sistem file devtmpfs khusus di bawah /dev, dan memungkinkan modul untuk secara otomatis membuat file perangkat mereka sendiri insmod, seperti yang ditunjukkan di: /programming/5970595/how-to-create-a-device-node-from -the-init-module-code-of-linux-kernel-module / 45531867 # 45531867

Inilah yang dilakukan Buildroot dan kebanyakan distro saat ini secara default.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.