Bociek PLD - Pisarz
I. Informacje podstawowe
II. Instalacja
III. Podręcznik użytkownika
IV. Podręcznik administratora
Kernel i urządzenia
Udev - dynamiczna obsługa sprzętu
V. Tworzenie PLD - Praktyczny poradnik
VI. O podręczniku
O tej książce
Spis treści
Inne wersje tego dokumentu
HTML (jeden plik)
Odnośniki
Tworzymy dokumentację PLD
Strona PLD
Listy dyskusyjne PLD

Udev - dynamiczna obsługa sprzętu

<- ->
 

Statyczne zarządzanie modułami kernela i urządzeniami w /dev było skomplikowane, uciążliwe i wymagało praw administratora, stąd narodziła się idea systemu, który zautomatyzuje te czynności. Tak oto powstał udev, współczesne wersje udeva (następcy DevFS) mają wbudowaną obsługę hotpluga i coldpluga. Dzięki temu mogą automatycznie ładować potrzebne moduły, ma to sens wyłącznie w przypadku modularnego kernela, jaki jest dostępny w PLD. Mimo włączenia hotpluga do udeva w PLD ciągle dostępne są pakiety z hotplugiem, są przechowywane jedynie dla wstecznej zgodności i nie będą nam już potrzebne.

Poza nielicznymi wypadkami nie będzie już konieczne dopisywanie nazw modułów do pliku /etc/modules, ani ich ręczne ładowanie za pomocą programu modprobe.

Więcej o plikach urządzeń znajdziemy w tym dokumencie.

Instalacja

W systemie domyślnie instalowany jest pakiet dev, jeśli zechcemy przejść na udev to wystarczy, że zainstalujemy pakiet udev a następnie odinstalujemy dev np.:

# poldek -i udev
# poldek -e dev

Osoby nie ufające do końca dynamicznemu tworzeniu urządzeń, nie usuwają z systemu statycznego deva tak jak to zrobiliśmy powyżej. Praktyka pokazuje jednak, że nie ma powodów do obaw i poza wyjątkowo ważnymi instalacjami systemu nie ma takiej potrzeby.

Konfiguracja

Udev w większości wypadków nie wymaga żadnych operacji konfiguracyjnych, czasami tylko konieczne jest poprawienie lub dodanie regułki do katalogu /etc/udev/rules.d/. Zanim się tym zajmiemy powinniśmy zapoznać się z dokumentacją.

W Ac do wyboru są dwa tryby pracy: udevstart (domyślny) i udevsynthesize. Ten drugi wykrywa większą liczbę urządzeń, stąd warto się pokusić o wybór właśnie jego. Aby go używać wystarczy, że ustawimy odpowiednią opcję w pliku /etc/udev/udev.conf:

UDEV_STARTER="udevsynthesize"

W Th powyższe opcje nie są już dostępne, ich miejsce zajął mechanizm udevtrigger.

Udev w praktyce

Liczba załadowanych modułów przez udev może przywrócić o zawrót głowy, udev ładuje moduły znalezionych urządzeń bez względu czy w ogóle z niego korzystamy. Jedyną wadą takiego działania jest większe zużycie pamięci przez nieużywane sterowniki. Nie powinno przekroczyć 2MiB pamięci, więc dla ogromnej większości współczesnych komputerów nie będzie to stanowić żadnego problemu.

Mamy wpływ na listę ładowanych modułów, aby zablokować ładowanie jakiegoś modułu wystarczy dodać do pliku /etc/modprobe.conf nazwę modułu poprzedzoną słowem blacklist np.:

blacklist rivafb
blacklist nvidiafb

Powyższa metoda ma sens jedynie jeśli chcemy zablokować pojedyncze moduły, jeśli mamy komputer o bardzo małej ilości pamięci lepszym pomysłem będzie pozostanie przy statycznej metodzie ładowania modułów.

Uwagi

Jeśli mamy kilka kontrolerów urządzeń masowych (IDE/SATA/SCSI) to mogą występować problemy z wykrywaniem ich na czas, tak by były gotowe do zamontowania systemów plików określonych w /etc/fstab. Jedynym pewnym sposobem poradzenia sobie z tym kłopotem jest dodanie modułów kontrolerów do initrd.

Więcej o udev możemy poczytać w FAQ

Udev nie zajmuje się montowaniem przenośnych nośników danych, musimy robić to ręcznie (co wymaga uprawnień administratora), lub użyć HAL-a, D-Busa oraz np. gnome-volume-manager w przypadku środowiska Gnome.

 
<- ->