.\" 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)