mdev คืออะไรและวิธีการ / dev / * โหนดถูกสร้างขึ้นใน Linux?


11

เคอร์เนล Linux ของเราคือ 2.6.31 ทำงานบนโปรเซสเซอร์ MIPS ในตัวพร้อมด้วย busybox

สคริปต์การเริ่มต้น (rcS) เริ่ม mdev ด้วย:

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

ทุกคนสามารถบอกได้ว่ายูทิลิตี้ Linux mdev ทำอะไรได้บ้าง

ดูเหมือนว่าจะทำการเชื่อมต่ออัตโนมัติโดยอัตโนมัติเนื่องจาก stbhotplug เป็นสคริปต์ที่จัดการอินเทอร์เฟซอีเธอร์เน็ต

นอกจากนี้ rootfs ที่เราได้รับเท่านั้นมีอุปกรณ์คอนโซลเช่น/dev/consoleเป็นไฟล์เดียว/devมา

อย่างไรก็ตามเมื่อระบบกำลังทำงาน/devไดเรกทอรีจะเต็มไปด้วยไฟล์อุปกรณ์ (เช่น/dev/mtdฯลฯ )

เหตุผลที่ฉันถามคือบางครั้งเราได้รับข้อผิดพลาดโดยมีรายงานว่า/dev/ubi_ctrlไม่พบหรือ/dev/ubi1ไม่พบ

Linux สร้างอุปกรณ์เหล่านี้ได้อย่างไรหรือเมื่อไหร่?

ขอบคุณ

คำตอบ:



6

mdev เป็นทางเลือกที่มีน้ำหนักเบาสำหรับ udev สำหรับการใช้งานในอุปกรณ์ฝังตัว ทั้งจัดการการสร้างไฟล์อุปกรณ์ใน/devและการเริ่มต้นของการกระทำเมื่อเหตุการณ์บางอย่างเกิดขึ้น


ดังนั้นหาก/devอุปกรณ์ไม่ได้ถูกสร้างขึ้นอาจเป็นปัญหากับmdevหรือปัญหาเวลา?

ใช่เท่าที่ฉันเข้าใจทั้งสองอาจเป็นจริง แต่ฉันเขียนเพียงคำตอบเพราะฉันเพิ่งอ่านเกี่ยวกับ mdev ในบทความข่าวเมื่อวานนี้ โดยทั่วไปฉันไม่มีประสบการณ์และไม่สามารถให้ความช่วยเหลือเพิ่มเติมได้อีก นั่นเป็นเหตุผลที่ฉันโพสต์คำตอบของฉันเป็นจุดเริ่มต้นสำหรับคำตอบวิกิชุมชน

1

mdevโดยทั่วไปเรียกmknodใช้ชุดของไฟล์อุปกรณ์ที่กำหนดค่าไว้ล่วงหน้า

หากคุณมีทางเลือกให้ใช้แทน:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

ซึ่งติดตั้งระบบไฟล์ devtmpfs พิเศษโดยอัตโนมัติ/devและอนุญาตให้โมดูลสร้างไฟล์อุปกรณ์ของตัวเองโดยอัตโนมัติinsmodตามที่แสดงไว้ที่: /programming/5970595/how-to-create-a-device-node-from -the-init โมดูลรหัสของ -a-ลินุกซ์เคอร์เนลโมดูล / 45531867 # 45531867

นี่คือสิ่งที่ Buildroot และ distros ส่วนใหญ่ทำในปัจจุบันโดยค่าเริ่มต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.