Provided by: manpages-ro_4.28.0-2_all 

NUME
udev - gestionarea dinamică a dispozitivelor
DESCRIERE
udev furnizează software de sistem cu evenimente de dispozitiv, gestionează permisiunile nodurilor de
dispozitiv și poate crea legături simbolice suplimentare în directorul /dev/ sau redenumește interfețele
de rețea. De obicei, nucleul doar atribuie nume de dispozitive imprevizibile pe baza ordinii de
descoperire. Legăturile simbolice sau denumirile semnificative ale dispozitivelor de rețea oferă o
modalitate de a identifica în mod fiabil dispozitivele pe baza proprietăților lor sau a configurației
curente.
Demonul udev, systemd-udevd.service(8), primește evenimentele dispozitivelor „uevents” direct de la
nucleu ori de câte ori un dispozitiv este adăugat sau eliminat din sistem, sau când acesta își schimbă
starea. Atunci când udev primește un eveniment de dispozitiv, acesta compară setul său configurat de
reguli cu diverse atribute ale dispozitivului pentru a identifica dispozitivul. Regulile care se
potrivesc pot furniza informații suplimentare despre dispozitiv care să fie stocate în baza de date udev
sau care să fie utilizate pentru a crea nume semnificative de legături simbolice.
Toate informațiile despre dispozitiv pe care le procesează udev sunt stocate în baza de date udev și
trimise către posibilii abonați la evenimente. Accesul la toate datele stocate și la sursele de
evenimente este asigurat de biblioteca libudev.
FIȘIERE DE REGULI
Regulile udev sunt citite din fișierele localizate în directoarele de reguli de sistem
/usr/lib/udev/rules.d și /usr/local/lib/udev/rules.d, în directorul de execuție volatil /run/udev/rules.d
și în directorul de administrare locală /etc/udev/rules.d. Toate fișierele de reguli sunt sortate și
procesate colectiv în ordine lexicală, indiferent de directoarele în care se află. Cu toate acestea,
fișierele cu nume de fișiere identice se înlocuiesc reciproc. Fișierele din /etc/ au cea mai mare
prioritate, iar fișierele din /run/ au prioritate față de fișierele cu același nume din /usr/. Acest
lucru poate fi utilizat pentru a înlocui un fișier de reguli furnizat de sistem cu un fișier local, dacă
este necesar; o legătură simbolică în /etc/ cu același nume ca un fișier de reguli din /usr/lib/, care
indică /dev/null, dezactivează în întregime fișierul de reguli. Fișierele de reguli trebuie să aibă
extensia „.rules”; alte extensii sunt ignorate.
Fiecare linie din fișierul de reguli conține cel puțin o pereche cheie-valoare. Cu excepția liniilor
goale sau a liniilor care încep cu „#”, care sunt ignorate. Există două tipuri de chei: match,
(potrivire) și assignment, (atribuire). Dacă toate cheile de potrivire se potrivesc cu valorile lor,
regula se aplică, iar cheilor de atribuire li se atribuie valorile specificate.
O regulă de potrivire poate redenumi o interfață de rețea, poate adăuga legături simbolice care indică
nodul dispozitivului sau poate rula un program specificat ca parte a gestionării evenimentelor.
O regulă constă dintr-o listă de una sau mai multe expresii cheie-operator-valoare, separate prin
virgule. Fiecare expresie are un efect distinct, în funcție de cheia și operatorul utilizat.
Operatori
"=="
Compară pentru egalitate. -- Cheia specificată are valoarea specificată.
"!="
Compară pentru inegalitate. -- Cheia specificată nu are valoarea specificată sau cheia specificată nu
este prezentă deloc.
"="
Atribuie o valoare la o cheie. Cheile care reprezintă o listă sunt reinițializate și se atribuie doar
această singură valoare.
"+="
Adaugă valoarea la o cheie care conține o listă de intrări.
"-="
Elimină valoarea dintr-o cheie care conține o listă de intrări.
Adăugată în versiunea 217.
":="
Atribuie o valoare unei chei în mod definitiv; nu permite nicio modificare ulterioară.
Adăugată în versiunea 247.
Valori
Valorile sunt scrise ca șiruri de caractere între ghilimele duble, cum ar fi ("string"). Pentru a include
o ghilimea dublă (") în valoare, aceasta trebuie precedată de o bară oblică inversă (\"). Orice alte
apariții ale unei bare oblice inverse urmate de un caracter nu sunt eludate. Altfel spus, șirul "\t\n"
este tratat ca patru caractere: bară oblică inversă, t minusculă, bară oblică inversă, n minusculă.
Șirul poate fi prefixat cu o minusculă e (e"string\n") pentru a marca șirul ca fiind eludat în stilul C,
a se vedea Secvențe de eludare în C[1]. De exemplu, e"string\n" este interpretat ca fiind format din 7
caractere: 6 litere minuscule și o linie nouă. Acest lucru poate fi util pentru a scrie caractere
speciale atunci când un controlor de nucleu le solicită.
Șirul poate fi prefixat cu un i în minusculă (i"șir") pentru a marca faptul că șirul sau modelul se va
potrivi fără a ține cont de majuscule. De exemplu, i„foo” se va potrivi cu „foo”, „FOO”, „FoO” și așa mai
departe. Prefixul poate fi utilizat numai pentru regulile de potrivire („==”) sau de nepotrivire („!=”),
de exemplu ATTR{foo}==i"abcd".
Rețineți că NUL nu este permis în niciuna dintre variantele de șiruri de caractere.
Chei
Următoarele nume de chei pot fi utilizate pentru a se potrivi cu proprietățile dispozitivelor. Unele
dintre chei se potrivesc, de asemenea, cu proprietățile dispozitivelor părinte din sysfs, nu numai cu
dispozitivul care a generat evenimentul. Dacă într-o singură regulă sunt specificate mai multe chei care
se potrivesc cu un dispozitiv părinte, toate aceste chei trebuie să se potrivească cu unul și același
dispozitiv părinte.
ACTION
Se potrivește cu numele acțiunii evenimentului.
DEVPATH
Se potrivește cu ruta la dispozitiv a dispozitivului de eveniment.
KERNEL
Se potrivește cu numele dispozitivului de eveniment.
KERNELS
Caută în sus în ruta dispozitivului un nume de dispozitiv corespunzător.
NUME
Se potrivește cu numele unei interfețe de rețea. Poate fi utilizată după ce cheia NAME a fost
stabilită într-una din regulile precedente.
SYMLINK
Se potrivește cu numele unei legături simbolice care vizează nodul. Poate fi utilizată după ce o
cheie SYMLINK a fost stabilită într-una din regulile precedente. Pot exista mai multe legături
simbolice; numai una trebuie să corespundă. În cazul în care operatorul este „!=”, simbolul
returnează «true» numai dacă nu există nicio legătură simbolică corespunzătoare.
SUBSYSTEM
Se potrivește cu subsistemul dispozitivului de evenimente.
SUBSYSTEMS
Caută în sus în ruta dispozitivului pentru un nume de subsistem de dispozitiv corespunzător.
DRIVER
Se potrivește cu numele controlorului dispozitivului de evenimente. Definiți această cheie numai
pentru dispozitivele care sunt legate de un controlor în momentul în care este generat evenimentul.
DRIVERS
Caută în sus în ruta dispozitivului pentru un nume de controlor de dispozitiv corespunzător.
ATTR{nume-fișier}
Se potrivește cu valoarea atributului sysfs al dispozitivului de eveniment.
Spațiul alb la final în valorile atributelor este ignorat, cu excepția cazului în care valoarea de
potrivire specificată conține ea însăși un spațiu alb la final.
ATTRS{nume-fișier}
Caută în sus în ruta dispozitivului un dispozitiv cu valori care se potrivesc cu valorile atributelor
sysfs. Dacă sunt specificate mai multe potriviri ATTRS, toate trebuie să se potrivească pe același
dispozitiv.
Spațiul alb la final în valorile atributelor este ignorat, cu excepția cazului în care valoarea de
potrivire specificată conține ea însăși un spațiu alb la final.
SYSCTL{parametru nucleu}
Se potrivește cu valoarea unui parametru al nucleului.
Adăugată în versiunea 240.
ENV{cheie}
Se potrivește cu o valoare de proprietate a dispozitivului.
CONST{cheie}
Se potrivește cu o constantă la nivel de sistem. Cheile acceptate sunt:
"arch"
Arhitectura sistemului. A se vedea ConditionArchitecture= în systemd.unit(5) pentru valorile
posibile.
Adăugată în versiunea 244.
"virt"
Mediul de virtualizare a sistemului. A se vedea systemd-detect-virt(1) pentru valorile posibile.
Adăugată în versiunea 244.
"cvm"
Tehnologia de virtualizare confidențială a sistemului. A se vedea systemd-detect-virt(1) pentru
valorile posibile.
Adăugată în versiunea 254.
Cheile necunoscute nu se vor potrivi niciodată.
Adăugată în versiunea 244.
TAG
Se potrivește cu una dintre etichetele dispozitivului. Poate fi utilizată după ce o cheie TAG a fost
stabilită într-una din regulile precedente. Pot exista mai multe etichete; trebuie să se potrivească
doar una dintre ele. În cazul în care operatorul este „!=”, simbolul returnează «true» numai dacă nu
există nicio etichetă care se potrivește.
TAGS
Caută în sus în ruta dispozitivului pentru un dispozitiv cu etichetal care să se potrivească. În
cazul în care operatorul este „!=”, simbolul returnează «true» numai dacă nu există nicio etichetă
care se potrivește.
TEST{masca de mod octal}
Testează existența unui fișier. Dacă este necesar, se poate specifica o mască de mod octal.
PROGRAM
Execută un program pentru a determina dacă există o potrivire; cheia este adevărată dacă programul
returnează succes. Proprietățile dispozitivului sunt puse la dispoziția programului executat în
mediu. Ieșirea standard a programului este disponibilă în cheia RESULT.
Aceasta poate fi utilizată numai pentru sarcini de prim-plan de foarte scurtă durată. Pentru detalii,
a se vedea RUN.
Rețineți că mai multe chei PROGRAM pot fi specificate într-o singură regulă, iar „=”, „:=” și „+=” au
același efect ca și „==”&.
RESULT
Se potrivește cu șirul returnat de ultimul apel PROGRAM. Această cheie poate fi utilizată în aceeași
regulă sau în orice regulă ulterioară după un apel PROGRAM.
Cele mai multe câmpuri acceptă potrivirea modelelor globale de tip shell și modelele alternative. Sunt
acceptate următoarele caractere speciale:
"*"
Se potrivește cu zero sau mai multe caractere.
"?"
Se potrivește cu orice caracter unic.
"[]"
Se potrivește cu orice caracter unic specificat între parantezele drepte. De exemplu, șirul de
caractere „tty[SR]” se potrivește fie cu „ttyS”, fie cu „ttyR”. De asemenea, sunt acceptate
intervalele prin intermediul caracterului „-”. De exemplu, pentru a se potrivi cu intervalul tuturor
cifrelor, se poate utiliza modelul „[0-9]”. În cazul în care primul caracter care urmează după „[”
este un „!”, toate caracterele care nu sunt incluse sunt potrivite.
"|"
Separă modelele alternative. De exemplu, șirul de modele „abc|x*” se va potrivi fie cu „abc”, fie cu
„x*”.
Adăugată în versiunea 217.
Se pot atribui valori următoarelor chei:
NUME
Numele care trebuie utilizat pentru o interfață de rețea. A se vedea systemd.link(5) pentru un
mecanism de nivel superior de stabilire a numelui interfeței. Numele unui nod de dispozitiv nu poate
fi modificat de udev, ci doar pot fi create legături simbolice suplimentare.
SYMLINK
Numele unei legături simbolice care vizează nodul. Fiecare regulă de potrivire adaugă această valoare
la lista de legături simbolice care urmează să fie create.
Setul de caractere pentru a numi o legătură simbolică este limitat. Caracterele permise sunt
„0-9A-Za-z#+-.:=@_/”, secvențe de caractere UTF-8 valide și codificarea hexazecimală „\x00”. Toate
celelalte caractere sunt înlocuite cu un caracter „_”.
Se pot specifica mai multe legături simbolice prin separarea numelor prin caracterul de spațiu. În
cazul în care mai multe dispozitive au același nume, legătura indică întotdeauna dispozitivul cu cea
mai mare prioritate de legătură. În cazul în care dispozitivul curent dispare, legăturile sunt
reevaluate, iar dispozitivul cu următoarea prioritate a legăturii „link_priority” mai mare devine
proprietarul legăturii. În cazul în care nu este specificată nicio prioritate a legăturii, ordinea
dispozitivelor (și care dintre ele deține legătura) este nedefinită.
Numele legăturilor simbolice nu trebuie să intre niciodată în conflict cu numele implicite ale
nodurilor de dispozitiv ale nucleului, deoarece acest lucru ar avea ca rezultat un comportament
imprevizibil.
OWNER, GROUP, MODE
Permisiunile pentru nodul de dispozitiv. Fiecare valoare specificată înlocuiește valoarea implicită
compilată.
SECLABEL{modul}
Aplică eticheta specificată pentru modulul de securitate Linux la nodul dispozitivului.
Adăugată în versiunea 209.
ATTR{cheie}
Valoarea care trebuie să fie scrisă într-un atribut sysfs al dispozitivului de eveniment.
SYSCTL{parametru nucleu}
Valoarea care trebuie să fie scrisă în parametrul nucleului.
Adăugată în versiunea 220.
ENV{cheie}
Definește o valoare a unei proprietăți a dispozitivului. Numele proprietăților cu un „.” la început
nu sunt stocate în baza de date și nici nu sunt exportate în evenimente sau instrumente externe
(executate, de exemplu, cu ajutorul cheii de potrivire PROGRAM).
TAG
Atașează o etichetă la un dispozitiv. Aceasta este utilizată pentru a filtra evenimentele pentru
utilizatorii funcționalității de monitorizare a libudev sau pentru a enumera un grup de dispozitive
etichetate. Implementarea poate funcționa eficient numai dacă doar câteva etichete sunt atașate unui
dispozitiv. Este destinată a fi utilizată numai în contexte cu cerințe specifice de filtrare a
dispozitivelor, și nu ca un indicator de uz general. O utilizare excesivă poate duce la o gestionare
ineficientă a evenimentelor.
RUN{tip}
Specifică un program care urmează să fie executat după procesarea tuturor regulilor pentru
evenimentul respectiv. Cu „+=”, această invocare se adaugă la listă, iar cu „=” sau „:=”, înlocuiește
orice conținut anterior al listei. Vă rugăm să rețineți că ambele tipuri „program” și „builtin”
descrise mai jos au o listă comună, astfel încât ștergerea listei cu „:=” și „=” afectează ambele
tipuri.
tip poate fi:
"program"
Execută un program extern specificat ca valoare atribuită. Dacă nu se indică o rută absolută, se
așteaptă ca programul să se afle în /usr/lib/udev; în caz contrar, trebuie specificată ruta
absolută.
Aceasta este valoarea implicită în cazul în care nu este specificat niciun tip.
"builtin"
Ca și program, dar folosește unul dintre programele încorporate, în loc de unul extern.
Adăugată în versiunea 199.
Numele programului și următoarele argumente sunt separate prin spații. Ghilimelele simple pot fi
folosite pentru a specifica argumentele cu spații.
Acest lucru poate fi utilizat numai pentru sarcini de prim-plan de foarte scurtă durată. Rularea unui
proces de evenimente pentru o perioadă lungă de timp poate bloca toate evenimentele ulterioare pentru
acest dispozitiv sau pentru un dispozitiv dependent.
Rețineți că rularea programelor care accesează rețeaua sau montează/demontează sisteme de fișiere nu
este permisă în cadrul regulilor udev, din cauza sandbox-ului implicit care este impus în
systemd-udevd.service.
Nu este permisă pornirea demonilor sau a altor procese care rulează mult timp; procesele bifurcate,
detașate sau nu, vor fi omorâte necondiționat după terminarea gestionării evenimentelor. Pentru a
activa procesele cu execuție îndelungată din regulile udev, furnizați o unitate de serviciu și
introduceți-o într-un dispozitiv udev folosind proprietatea de dispozitiv SYSTEMD_WANTS. Pentru
detalii, consultați systemd.device(5).
LABEL
O etichetă numită către care poate sări o etichetă GOTO.
GOTO
Sare la următoarea etichetă LABEL cu un nume corespunzător.
IMPORT{tip}
Importă un set de variabile ca proprietăți ale dispozitivului, în funcție de tip:
"program"
Execută un program extern specificat ca valoare atribuită și, dacă se întoarce cu succes, importă
rezultatul acestuia, care trebuie să fie în format de cheie de mediu. Specificarea rutei de
acces, separarea comenzii/argumentului și punerea între ghilimele funcționează ca în RUN.
Adăugată în versiunea 199.
"builtin"
Similar cu „program”, dar utilizează unul dintre programele încorporate și nu unul extern.
Adăugată în versiunea 199.
"file"
Importă un fișier text specificat ca valoare atribuită, al cărui conținut trebuie să fie în
format de cheie de mediu.
"db"
Importă o singură proprietate specificată ca valoare atribuită din baza de date a dispozitivului
curent. Acest lucru funcționează numai dacă baza de date este deja completată de un eveniment
anterior.
"cmdline"
Importă o singură proprietate din linia de comandă a nucleului. Pentru fanioanele simple,
valoarea proprietății este stabilită la „1”.
"parent"
Importă cheile stocate de la dispozitivul părinte prin citirea intrării din baza de date a
dispozitivului părinte. Valoarea atribuită lui IMPORT{parent} este utilizată ca filtru pentru
numele cheilor care urmează să fie importate (cu aceeași potrivire de tip global de tip shell
utilizată pentru comparații).
Aceasta poate fi utilizată numai pentru sarcini de prim-plan de foarte scurtă durată. Pentru detalii,
a se vedea RUN.
Rețineți că mai multe chei IMPORT{} pot fi specificate într-o singură regulă, iar „=”, „:=” și „+=”
au același efect ca și „==”& adevărată în cazul în care importul are succes, cu excepția cazului în
care se utilizează „!=” ca operator, ceea ce face ca cheia să fie adevărată în cazul în care importul
nu a reușit.
OPȚIUNI
Opțiuni pentru reguli și dispozitive:
link_priority=valoare
Specifică prioritatea legăturilor simbolice create. Dispozitivele cu priorități mai mari
suprascriu legăturile simbolice existente ale altor dispozitive. Valoarea implicită este 0.
string_escape=none|replace
Atunci când se utilizează „replace”, caracterele eventual nesigure din șirurile atribuite la
NAME, SYMLINK și ENV{cheie} sunt înlocuite. În cazul în care se utilizează „none”, nu se
efectuează nicio înlocuire. Atunci când nu este activată, înlocuirea se efectuează pentru NAME,
SYMLINK, dar nu și pentru ENV{cheie}. Nu este definită în mod implicit.
static_node=
Aplică permisiunile specificate în această regulă la nodul de dispozitiv static cu numele
specificat. De asemenea, pentru fiecare etichetă specificată în această regulă, creează o
legătură simbolică în directorul /run/udev/static_node-tags/eticheta care să arate către nodul de
dispozitiv static cu numele specificat. Crearea nodurilor de dispozitive statice este realizată
de systemd-tmpfiles înainte de pornirea systemd-udevd. Este posibil ca nodurile statice să nu
aibă un dispozitiv de nucleu corespunzător; ele sunt utilizate pentru a declanșa încărcarea
automată a modulelor de nucleu atunci când sunt accesate.
watch
Monitorizează nodul dispozitivului cu inotify; când nodul este închis după ce a fost deschis
pentru scriere, se sintetizează un eveniment de modificare uevent.
nowatch
Dezactivează monitorizarea unui nod de dispozitiv cu inotify.
db_persist
Activează fanionul (sticky bit) pe intrarea în baza de date udev a dispozitivului de evenimente.
Proprietățile dispozitivului sunt apoi păstrate în baza de date chiar și atunci când se apelează
udevadm info --cleanup-db. Această opțiune poate fi utilă în anumite cazuri (de exemplu,
dispozitivele Device Mapper) pentru a păstra starea dispozitivului la tranziția de la initrd.
Adăugată în versiunea 241.
log_level=nivel
Primește un nume de nivel de jurnal, cum ar fi „debug” sau „info”, sau o valoare specială
„reset”. Atunci când este specificat un nume de nivel de jurnal, nivelul maxim de jurnal este
schimbat la nivelul respectiv. Atunci când se stabilește „reset”, nivelul de jurnal specificat
anterior este revocat. Valoarea implicită este nivelul de jurnal al procesului principal din
systemd-udevd.
Aceasta poate fi utilă la depanarea evenimentelor pentru anumite dispozitive. Rețineți că nivelul
de jurnal este aplicat atunci când linia care include această regulă este procesată. Prin urmare,
pentru depanare, se recomandă ca acest nivel să fie specificat mai devreme, de exemplu, pe prima
linie din 00-debug.rules.
Exemplu de depanare a procesării uevent pentru interfețele de rețea:
# /etc/udev/rules.d/00-debug-net.rules
SUBSYSTEM=="net", OPTIONS="log_level=debug"
Adăugată în versiunea 248.
dump
Afișează statusul evenimentului care se procesează în prezent. Poate fi util pentru depanarea
regulilor udev prin inserarea acestei opțiuni.
Adăugată în versiunea 258.
Câmpurile ENV, GROUP, MODE, NAME, OWNER, PROGRAM, RUN, SECLABEL și SYMLINK acceptă substituții simple de
șiruri de caractere. Substituțiile RUN sunt efectuate după ce toate regulile au fost procesate, chiar
înainte de executarea programului, permițând utilizarea proprietăților dispozitivului stabilite de
regulile de potrivire anterioare. Pentru toate celelalte câmpuri, substituțiile sunt efectuate în timp ce
regula individuală este procesată. Substituțiile disponibile sunt:
$kernel, %k
Numele nucleului pentru acest dispozitiv.
$number, %n
Numărul nucleului pentru acest dispozitiv. De exemplu, „sda3” are numărul dat de nucleu 3.
$devpath, %p
Ruta la dispozitiv a dispozitivului.
$id, %b
Numele dispozitivului care se potrivește atunci când se caută în sus în ruta dispozitivului pentru
SUBSYSTEMS, KERNELS, DRIVERS și ATTRS.
$driver
Numele controlorului dispozitivului care se potrivește atunci când se caută în sus în ruta
dispozitivului pentru SUBSYSTEMS, KERNELS, DRIVERS și ATTRS.
$attr{fișier}, %s{fișier}
Valoarea unui atribut sysfs găsit la dispozitivul la care toate cheile regulii au corespuns. Dacă
dispozitivul care corespunde nu are un astfel de atribut, iar un test anterior KERNELS, SUBSYSTEMS,
DRIVERS sau ATTRS a selectat un dispozitiv părinte, atunci se utilizează atributul din acel
dispozitiv părinte.
În cazul în care atributul este o legătură simbolică, ultimul element din ținta legăturii simbolice
este returnat ca valoare.
$env{cheie}, %E{cheie}
O valoare a proprietății dispozitivului.
$major, %M
Numărul major al nucleului pentru dispozitiv.
$minor, %m
Numărul minor al nucleului pentru dispozitiv.
$result, %c
Șirul returnat de programul extern solicitat cu PROGRAM. Se poate selecta o singură parte a șirului,
separată de un caracter de spațiu, specificând numărul părții ca atribut: „%c{N}”. În cazul în care
numărul este urmat de caracterul „+”, această parte și toate celelalte părți ale șirului rezultat
sunt înlocuite: „%c{N+}”.
$parent, %P
Numele nodului dispozitivului părinte.
$name
Numele actual al dispozitivului. Dacă nu este modificat de o regulă, acesta este numele
dispozitivului din nucleu.
$links
O listă de legături simbolice curente, separate prin spații. Valoarea este stabilită numai în timpul
unui eveniment de eliminare sau dacă o regulă anterioară a atribuit o valoare.
$root, %r
Valoarea udev_root.
$sys, %S
Punctul de montare sysfs.
$devnode, %N
Numele nodului dispozitivului.
%%
Caracterul „%” însuși.
$$
Caracterul „%” însuși.
CONSULTAȚI ȘI
systemd-udevd.service(8), udevadm(8), systemd.link(5)
NOTE
1. Secvențe de eludare în C
https://en.wikipedia.org/wiki/Escape_sequences_in_C#Table_of_escape_sequences
TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o
versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO
RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
ro@lists.sourceforge.net.
systemd 258~rc3 UDEV(7)