Co to jest mdev i jak tworzyć / dev / * węzły w Linuksie?

11

Nasze jądro Linuksa 2.6.31 działa na wbudowanym procesorze MIPS z busybox.

Skrypt inicjujący (rcS) uruchamia mdev z:

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

Czy ktoś może mi powiedzieć, co robi narzędzie Linux mdev?

Wygląda na to, że wykonuje automatyczne podłączanie na gorąco, ponieważ stbhotplug to skrypt obsługujący interfejsy Ethernet.

Również rootfs, który nam podano, ma tylko konsolę, tzn. /dev/consoleJest to jedyny plik w pliku /dev.

Jednak gdy system jest uruchomiony, /devkatalog jest pełen plików urządzeń (np. /dev/mtdItp.).

Powodem, dla którego pytam, jest to, że czasami pojawia się błąd, w wyniku którego zgłaszane jest, że /dev/ubi_ctrlnie znaleziono lub /dev/ubi1nie znaleziono.

Jak lub kiedy Linux tworzy te urządzenia?

Dzięki.

użytkownik626201
źródło

Odpowiedzi:

6

mdev jest lekką alternatywą dla udev do użytku w urządzeniach wbudowanych. Oba zajmują się tworzeniem plików urządzeń /devi uruchamianiem akcji w przypadku wystąpienia określonych zdarzeń.

Daniel Böhmer
źródło
Więc jeśli /devurządzenia nie są tworzone, może występować problem mdevlub problem z synchronizacją?
Tak, o ile rozumiem, oba mogą być prawdą. Ale napisałem odpowiedź tylko dlatego, że wczoraj przeczytałem o mdev w artykule prasowym. Zasadniczo nie mam z tym doświadczenia i nie mogę udzielić dalszej pomocy. Właśnie dlatego opublikowałem swoją odpowiedź jako odpowiedź na wiki wiki.
1

mdevw zasadzie wymaga mknodzestawu wstępnie skonfigurowanych plików urządzeń.

Jeśli masz wybór, użyj zamiast tego:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

który automatycznie montuje specjalny system plików devtmpfs /devi pozwala modułom automatycznie tworzyć własne pliki urządzeń insmod, jak pokazano na: /programming/5970595/how-to-create-a-device-node-from -tak-moduł-init-kod-z-jądra-modułu-Linux / 45531867 # 45531867

To właśnie robi obecnie Buildroot i większość dystrybucji.

Ciro Santilli
źródło