.\" Title: udev .\" Author: .\" Generator: DocBook XSL Stylesheets v1.73.2 .\" Date: Sierpień 2005 .\" Manual: udev .\" Source: udev .\" .TH "UDEV" "7" "Sierpień 2005" "udev" "udev" .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .SH "NAZWA" udev \- dynamiczne zarządzanie urządzeniami .SH "OPIS" .PP udev dynamicznie tworzy katalog urządzeń złożony tylko z plików urządzeń rzeczywiście istniejących\&. Tworzy lub usuwa węzły urządzeń w katalogu \fI/dev\fR lub zmienia nazwy interfejsów sieciowych\&. .PP Na ogół udev działa jako \fBudevd\fR(8) i otrzymuje zdarzenia UEVENT prosto od jądra, jeśli urządzenie zostało dodane lub usunięte z systemu\&. .PP Jeśli udev otrzyma zdarzenie urządzenia, to dla zidentyfikowania go dopasowuje jego reguły (określone w plikach konfiguracyjnych) do dostępnych atrybutów urządzenia dostarczonych przez sysfs\&. Reguły te mogą dostarczać dodatkowych informacji o urządzeniu, określać nazwę jego węzła lub nakazać demonowi udev uruchomienie dodatkowych poleceń jako część obsługi zdarzenia\&. .SH "KONFIGURACJA" .PP Pliki konfiguracyjne udev umieszczone są w \fI/etc/udev/\fR oraz \fI/lib/udev/\fR\&. Puste ich linie oraz linie zaczynające się od \'#\' są ignorowane\&. .SS "Pliki konfiguracyjne" .PP udev szuka swojej głównej konfiguracji w pliku \fI/etc/udev/udev\&.conf\fR\&. Zawiera on zestaw zmiennych pozwalających użytkownikowi nadpisywać domyślne wartości udev\&. Następujące zmienne mogą być ustawione: .PP \fB udev_root \fR .RS 4 Określa, gdzie umieścić węzły urządzeń w systemie plików\&. Domyślną wartością jest \fI/dev\fR\&. .RE .PP \fB udev_log \fR .RS 4 Poziom logowania\&. Prawidłowymi wartościami są liczbowe wartości poziomów logowania syslog oraz ich tekstowe odpowiedniki: \fBerr\fR, \fBinfo\fR oraz \fBdebug\fR\&. .RE .SS "Pliki reguł" .PP Reguły udev czytane są z plików umieszczonych w domyślnym katalogu reguł \fI/lib/udev/rules\&.d/\fR, systemowym katalogu reguł \fI/etc/udev/rules\&.d/\fR oraz tymczasowym \fI/dev/\&.udev/rules\&.d/\fR\&. Wszystkie reguły są sortowane i przetwarzana w porządku alfabetycznym, bez względu na to, z którego katalogu pochodzą\&. .PP Nazwy plików reguł powinny mieć niepowtarzalne nazwy, w przeciwnym razie duplikaty są ignorowane\&. Pliki z katalogu \fI/etc/udev/rules\&.d/\fR mają przewagę nad plikami o tej samej nazwie z katalogu \fI/lib/udev/rules\&.d/\fR\&. Można to wykorzystać do zignorowania w razie potrzeby domyślnych reguł\&. .PP Każda linia w pliku reguł składa się z co najmniej jednej pary "klucz\-wartość"\&. Istnieją dwa rodzaje kluczy: dopasowujące oraz przypisujące\&. Jeśli w momencie otrzymania zdarzenia wszystkie podane dopasowujące klucze pasują do zdefiniowanych tam wartości, reguła zostaje zastosowana oraz wykonywane są przypisania z kluczy przypisujących\&. .PP Reguła dopasowująca może określać nazwę węzła urządzenia, dodać dowiązanie wskazujące na węzeł lub uruchomić wybrany program jako część obsługi zdarzenia\&. Jeśli nie znaleziono żadnej pasującej reguły, tworzony jest domyślny węzeł urządzenia\&. .PP Reguły mogą składać się z list jednej lub więcej lub więcej par "klucz\-wartość" oddzielonych przecinkami\&. Każdy klucz opisuje dokładnie jedną operację, zależną od użytego operatora\&. Prawidłowymi wartościami są: .PP \fB == \fR .RS 4 Sprawdzanie równości\&. .RE .PP \fB != \fR .RS 4 Sprawdzanie różności\&. .RE .PP \fB = \fR .RS 4 Przypisanie wartości do klucza\&. Klucz reprezentujący listę wartości zostaje zredukowany do jednej określonej w tym przypisaniu\&. .RE .PP \fB += \fR .RS 4 Poszerzenie istniejącej listy wartości klucza o zadaną\&. .RE .PP \fB := \fR .RS 4 Ostateczne przypisanie wartości do klucza\&. Nie pozwala ono na późniejsze zmiany\&. Pozwala to zapobiegać dokonywaniu zmian przez późniejsze reguły\&. .RE .PP Niżej zostaną podane nazwy kluczy mogące być użyte dla dopasowania właściwości urządzeń\&. Niektóre z kluczy mogą także dopasowywać właściwości urządzeń nadrzędnych w sysfs, a nie tylko urządzenia które wygenerowało zdarzenie\&. Jeśli w pojedynczej regule określonych jest wiele kluczy pasujących do nadrzędnego urządzenia, to urządzenie to musi być wskazane jednoznacznie (nie wolno dopasowywać do dwóch różnych nadrzędnych)\&. .PP \fB ACTION \fR .RS 4 Dopasowuje nazwę akcji zdarzenia\&. .RE .PP \fB DEVPATH \fR .RS 4 Dopasowuje ścieżkę urządzenia, którego zdarzenie zostało wyzwolone\&. .RE .PP \fB KERNEL \fR .RS 4 Dopasowuje nazwę urządzenia, którego zdarzenie zostało wyzwolone\&. .RE .PP \fB NAME \fR .RS 4 Dopasowuje nazwę węzła lub interfejs sieciowy\&. Można tego użyć, kiedy klucz NAME został ustawiony w jednej z poprzedzających reguł\&. .RE .PP \fB SUBSYSTEM \fR .RS 4 Dopasowuje podsystem urządzenia, którego zdarzenie zostało wyzwolone\&. .RE .PP \fB DRIVER \fR .RS 4 Dopasowuje nazwę sterownika urządzenia, którego zdarzenie zostało wyzwolone\&. Ustawiane tylko dla urządzeń powiązanych ze sterownikiem w momencie wyzwolenia zdarzenia\&. .RE .PP \fB ATTR{\fR\fB\fInazwa_pliku\fR\fR\fB} \fR .RS 4 Dopasowuje wartości atrybutów sysfs urządzenia, którego zdarzenie zostało wyzwolone\&. Maksymalnie w jednej regule użyte może być pięć kluczy \fBATTR\fR\&. Końcowy biały znak we wzorcu wartości atrybutu jest ignorowany, jeśli nie występował na końcu dopasowywanej wartości\&. Zależnie od typu operatora, klucz ten jest także używany do ustawienia wartości atrybutu sysfs\&. .RE .PP \fB KERNELS \fR .RS 4 Przeszukuje w górę ścieżkę urządzenia dla dopasowania nazwy podanego lub nadrzędnego urządzenia\&. .RE .PP \fB SUBSYSTEMS \fR .RS 4 Przeszukuje w górę ścieżkę urządzenia dla dopasowania nazwy podanego lub nadrzędnego podsystemu\&. .RE .PP \fB DRIVERS \fR .RS 4 Przeszukuje w górę ścieżkę urządzenia dla dopasowania nazwy jego pasującej nazwy sterownika\&. .RE .PP \fB ATTRS{\fR\fB\fInazwa_pliku\fR\fR\fB} \fR .RS 4 Przeszukuje w górę ścieżkę urządzenia dla dopasowania nazwy jego pasującego atrybutu sysfs\&. Na jedną regułę może przypadać maksymalnie pięć kluczy \fBATTRS\fR\&. Końcowy biały znak we wzorcu wartości atrybutu jest ignorowany, jeśli nie występował na końcu dopasowywanej wartości (od tłum: warto zweryfikować tłumaczenie tego zdania lub oryginał)\&. .RE .PP \fB ENV{\fR\fB\fIklucz\fR\fR\fB} \fR .RS 4 Dopasowuje wartość zmiennej środowiskowej\&. Na jedną regułę może przypadać maksymalnie pięć kluczy \fBENV\fR\&. Zależnie od operatora, klucz ten może posłużyć również do wyeksportowania zmiennej do środowiska\&. .RE .PP \fB TEST{\fR\fB\fImaska ósemkowa\fR\fR\fB} \fR .RS 4 Sprawdza istnienie pliku\&. W razie potrzeby, można podać maskę w notacji ósemkowej\&. .RE .PP \fB PROGRAM \fR .RS 4 Wykonuje zewnętrzny program\&. Klucz ten jest prawdziwy, jeśli program zwrócił zerowy kod wyjścia\&. Dla wykonywanego programu udostępnione jest całe środowisko zdarzenia\&. Standardowe wyjście programu jest dostępne za pomocą klucza RESULT\&. .RE .PP \fB RESULT \fR .RS 4 Dopasowuje otrzymane wyjście programu wywołanego kluczem PROGRAM\&. Można to wykorzystać w tej samej regule po wywołaniu klucza PROGRAM lub w dowolnej późniejszej\&. .RE .PP Większość pól obsługuje powłokowe wzorce dopasowania\&. Wspierane są następujące: .PP \fB * \fR .RS 4 Dopasowuje dowolną liczbę znaków (także zerową)\&. .RE .PP \fB ? \fR .RS 4 Dopasowuje dowolny pojedynczy znak\&. .RE .PP \fB [] \fR .RS 4 Dopasowuje dowolny pojedynczy znak określony pomiędzy nawiasami\&. Przykładowo, wzorzec \'tty[SR]\' dopasowuje \'ttyS\' oraz \'ttyR\'\&. Dopuszczalne jest podanie zakresu za pomocą znaku \'\-\', np\&. [0\-9] dla zakresu wszystkich liczb\&. Jeśli znakiem następującym po \'[\' jest \'!\', to pasować będzie każdy znak nie ujęty w nawiasie\&. .RE .PP Wartości można przypisywać następującym regułom: .PP \fB NAME \fR .RS 4 Nazwa węzła lub interfejsu sieciowego do stworzenia, która może być ustawiona\&. Co najwyżej jedna pasująca reguła z przypisaniem \'NAME=\' jest skuteczna, następne takie są ignorowane\&. .RE .PP \fB SYMLINK \fR .RS 4 Nazwa dowiązania symbolicznego wskazującego na węzeł\&. Każda pasująca reguła może dodać taką wartość do listy dowiązań symbolicznych tego węzła\&. W jednym kluczu można określić wiele linków naraz, rozdzielając je spacją\&. .RE .PP \fB OWNER, GROUP, MODE \fR .RS 4 Uprawnienia węzła urządzenia\&. Każda określona tu wartość nadpisuje wkompilowane domyślne wartości\&. .RE .PP \fB ATTR{\fR\fB\fIklucz\fR\fR\fB} \fR .RS 4 Wartość, która powinna być zapisana jako atrybut sysfs w urządzeniu wywołującym zdarzenie\&. Przy odpowiednim operatorze klucz ten może być używany do dopasowania zadanej wartości\&. .RE .PP \fB ENV{\fR\fB\fIklucz\fR\fR\fB} \fR .RS 4 Eksportuje zmienną do środowiska\&. Przy odpowiednim operatorze klucz ten może być używany do dopasowania zadanej wartości zmiennej środowiskowej\&. .RE .PP \fB RUN \fR .RS 4 Dodaj program do listy programów mających być wykonanymi dla określonego urządzenia\&. Można tego używać dla bardzo krótkich zadań\&. Uruchomienie obsługi zdarzenia na długi czas może blokować obsługę dalszych zdarzeń dla tego lub zależnego urządzenia\&. Długo pracujące zadania potrzebują być natychmiast odłączone od obsługi zdarzenia (od tłum\&. zapewne to zdanie wymaga lepszej polskiej wersji i bez testów się nie obędzie ;))\&. .sp Jeśli podana wartość zaczyna się od \fBsocket:\fR\fB\fIścieżka\fR\fR, wszystkie bieżące wartości zdarzenia zostaną przekazane do wskazanego gniazda jako komunikat w takim formacie, w jakim jądro wysyła zdarzenia UEVENT\&. Jeśli pierwszym znakiem określonej ścieżki jest \'@\', zostanie użyte gniazdo z abstrakcyjnej przestrzeni nazw zamiast istniejącego pliku gniazda\&. .RE .PP \fB LABEL \fR .RS 4 Etykieta, do której można skoczyć za pomocą \fIGOTO\fR\&. .RE .PP \fB GOTO \fR .RS 4 Skacze do najbliższej następnej etykiety LABEL o pasującej nazwie\&. .RE .PP \fB IMPORT{\fR\fB\fItyp\fR\fR\fB} \fR .RS 4 Importuje do środowiska zdarzenia zestaw zmiennych zależnie od \fItypu\fR: .PP \fB program \fR .RS 4 Wykonuje zewnętrzny program określony w przypisanej wartości i importuje jego wyjście, które musi być w formacie klucza przypisania zmiennej środowiskowej\&. .RE .PP \fB file \fR .RS 4 Importuje treść z określonego w wartości pliku tekstowego Treść musi być podana w formacie klucza przypisania zmiennej środowiskowej\&. .RE .PP \fB parent \fR .RS 4 Importuje przez odczyt bazy danych zgromadzone klucze z nadrzędnego urządzenia\&. Wartości przypisane do klucza \fBIMPORT{parent}\fR użyte są jako filtr nazw kluczy do zaimportowania\&. Filtr ten jest takim samym wzorcem dopasowania jak przy porównaniach\&. .RE .sp Jeśli nie podano żadnej z powyższych opcji, udev dokona wyboru między \fBprogram\fR a \fBfile\fR na podstawie bitu wykonywalności w prawach dostępu\&. .RE .PP \fB WAIT_FOR \fR .RS 4 Czekaj aż plik stanie się dostępny\&. .RE .PP \fB OPCJE \fR .RS 4 Opcje reguł i urządzeń: .PP \fB last_rule \fR .RS 4 Zapobiega wykonaniu dalszych reguł spełniających to samo dopasowanie\&. Żadna z takich dalszych reguł nie odniesie rezultatu\&. .RE .PP \fB ignore_device \fR .RS 4 Zupełnie zignoruj to zdarzenie\&. .RE .PP \fB ignore_remove \fR .RS 4 Nie usuwaj węzła tego urządzenia w momencie zdarzenia usunięcia samego urządzenia\&. Może to być przydatnym obejściem problemów z nieprawidłowo działającymi sterownikami\&. .RE .PP \fB link_priority=\fR\fB\fIwartość\fR\fR\fB \fR .RS 4 Określ priorytet tworzenia dowiązań\&. Urządzenia z określonym wyższym priorytetem nadpiszą istniejące dowiązania do węzłów innych urządzeń\&. Domyślną wartością jest 0\&. .RE .PP \fB all_partitions \fR .RS 4 Utwórz węzły urządzeń dla wszystkich dostępnych partycji urządzenia blokowego\&. Można tego użyć dla wymiennych nośników, kiedy zmiana nośnika nie jest wykryta\&. .RE .PP \fB event_timeout= \fR .RS 4 Liczba sekund, w których zdarzenie UDEV będzie czekało na zakończenie zadania, nim dokona samolikwidacji\&. .RE .PP \fB string_escape=\fR\fB\fInone|replace \fR\fR\fB \fR .RS 4 Na ogół kontrolne lub potencjalne niebezpieczne znaki zastępowane są znakami używanymi w nazewnictwie urządzeń\&. W tej opcji można określić tryb zastępowania\&. .RE .RE .PP Pola \fBNAME\fR, \fBSYMLINK\fR, \fBPROGRAM\fR, \fBOWNER\fR, \fBGROUP\fR, \fBMODE\fR oraz \fBRUN\fR obsługują podstawienia łańcuchów w stylu printf\&. Znaki formatujące pola \fBRUN\fR zastosowane są dopiero po przetworzeniu wszystkich reguł i bezpośrednio przed wykonaniem programu\&. Pozwala to wykorzystać kompletne środowisko za sprawą wcześniejszego dopasowania reguł\&. W przypadku innych pól, podstawienia wykonywane są w momencie przetwarzania pojedynczej reguły\&. (od\&. tłum\&.: tłumaczenie zdań o momencie korzystania z podstawień wymaga koniecznie porównania z oryginalną wersją i rzeczywistym działaniem)\&. Dostępnymi podstawieniami są: .PP \fB$kernel\fR, \fB%k\fR .RS 4 Nazwa urządzenia dana przez jądro\&. .RE .PP \fB$number\fR, \fB%n\fR .RS 4 Numer urządzenia dany przez jądro\&. Przykładowo, numerem \'sda3\' jest \'3\'\&. .RE .PP \fB$devpath\fR, \fB%p\fR .RS 4 Ścieżka urządzenia\&. .RE .PP \fB$id\fR, \fB%b\fR .RS 4 Nazwa urządzenia dopasowanego podczas szukania w górę ścieżki urządzenia dla opcji \fBSUBSYSTEMS\fR, \fBKERNELS\fR, \fBDRIVERS\fR oraz \fBATTRS\fR\&. .RE .PP \fB$driver\fR .RS 4 Nazwa sterownika urządzenia dopasowanego podczas szukania w górę ścieżki urządzenia dla opcji \fBSUBSYSTEMS\fR, \fBKERNELS\fR, \fBDRIVERS\fR oraz \fBATTRS\fR\&. .RE .PP \fB $attr{\fR\fB\fIfile\fR\fR\fB} \fR, \fB %s{\fR\fB\fIfile\fR\fR\fB} \fR .RS 4 Wartość atrybutu sysfs dla urządzenia, gdzie wszystkie klucze reguły zostały dopasowane\&. Jeśli dopasowane urządzenie nie posiada takiego atrybutu, następuje szukanie w górę łańcucha nadrzędnych urządzeń i użyty jest pierwszy dopasowany atrybut\&. Jeśli atrybutem jest dowiązanie (symlink), zwracany jest ostatni element z celu dowiązania\&. .RE .PP \fB $env{\fR\fB\fIkey\fR\fR\fB} \fR, \fB%E{\fR\fB\fIkey\fR\fR\fB} \fR .RS 4 Wartość zmiennej środowiskowej\&. .RE .PP \fB $major \fR, \fB %M \fR .RS 4 Numer główny urządzenia dany przez jądro\&. .RE .PP \fB $minor \fR, \fB %m \fR .RS 4 Numer podrzędny urządzenia dany przez jądro\&. .RE .PP \fB $result \fR, \fB %c \fR .RS 4 Łańcuch zwracany przez zewnętrzny program wywołany kluczem PROGRAM\&. Spacje w nim zawarte wyznaczają pola, do których można odnosić się liczbowo\&. N\-te pole zwracane jest przez \fB%c{N}\fR\&. Jeśli po liczbie N następuje znak \'+\' (\fB%c{N}\fR), zwracany jest łańcuch zaczynający się polem o tym numerze i zawierającym wszystkie następne pola\&. .RE .PP \fB $parent \fR, \fB %P \fR .RS 4 Nazwa węzła nadrzędnego urządzenia\&. .RE .PP \fB $name \fR .RS 4 Bieżąca nazwa węzła urządzenia\&. Jeśli nie została zmieniona przez którąś z reguł, jest to nazwa dana przez jądro\&. .RE .PP \fB $links \fR .RS 4 Bieżąca lista dowiązań oddzielonych spacją\&. Wartość ta jest ustawiona tylko, gdy wcześniejsza reguła przypisała wartość lub w momencie usuwania urządzenia\&. .RE .PP \fB $root \fR, \fB %r \fR .RS 4 Wartość zmiennej udev_root\&. .RE .PP \fB $sys \fR, \fB %S \fR .RS 4 Punkt montowania sysfs\&. .RE .PP \fB $tempnode \fR, \fB %N \fR .RS 4 Nazwa stworzonego tymczasowego węzła urządzenia umożliwiającego dostęp do urządzenia za pomocą zewnętrznego programu zanim zostanie stworzony docelowy węzeł\&. .RE .PP \fB %% \fR .RS 4 Dosłowny znak \'%\'\&. .RE .PP \fB $$ \fR .RS 4 Dosłowny znak \'$\'\&. .RE .PP Liczbę znaków do podstawienia można ograniczyć formatem długości\&. Dla przykładu, \'%3s{file}\' wstawi tylko pierwsze trzy znaki atrybutu sysfs\&. .SH "AUTOR" .PP Greg Kroah\-Hartman i Kay Sievers \&. Sporo pomogli Dan Stekloff i wielu innych\&. .SH "TŁUMACZENIE" .PP 26\&.09\&.2008, Tomasz Nowiński < arctgx [at] tlen\&.pl > na podstawie podręcznika udev dla wersji 128\&. Kilka zdań wymaga jeszcze solidnego sprawdzenia: nie tylko zestawienia z oryginałem, ale i zrobienia dobrych testów\&. .SH "ZOBACZ TAKŻE" .PP \fBudevd\fR(8), \fBudevadm\fR(8)