Що таке mdev і як створити / dev / * вузли в Linux?


11

Наше ядро ​​Linux 2.6.31 працює на вбудованому MIPS-процесорі з busbox.

Сценарій ініціалізації (rcS) починається mdev з:

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

Хто-небудь може сказати мені, що робить утиліта Linux mdev?

Схоже, це робить автоматичне гаряче підключення, оскільки stbhotplug - це сценарій, який обробляє інтерфейси Ethernet.

Крім того, у коренів, які нам дали, є лише консольний пристрій, тобто /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 -init-module-code-of-a-linux-kernel-module / 45531867 # 45531867

Це те, що Buildroot і більшість дистрибутивів зараз роблять за замовчуванням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.