Tartalomjegyzék
A kernel képes a futó rendszer szinte bármely eszközének hozzáadására és eltávolítására. Az eszközök állapotának változását (vagyis hogy az eszközt behelyezték, vagy eltávolították) továbbítani kell a felhasználói területre (userspace) is. Az eszközöket csatlakoztatás és észlelés után azonnal be kell állítani. A megadott eszköz felhasználóit értesíteni kell az eszköz állapotában bekövetkezett bármilyen változásról. Az udev biztosítja a szükséges infrastruktúrát ahhoz, hogy az eszközcsomópontfájlokat és a szimbolikus láncokat dinamikusan lehessen kezelni a /dev könyvtárban. Az udev-szabályok egyfajta módszert biztosítanak a külső eszközöknek a kernel eszközesemény-feldolgozásba becsatlakoztatásához. Ily módon testreszabható az udev eszközkezelése: például végrehajthatók meghatározott parancsfájlok a kernel eszközkezelésének részeként,vagy kérhetők és importálhatók további adatok kiértékelésre az eszközkezelés közben.
¶
A /dev könyvtárban található eszközcsomópontok biztosítanak hozzáférést a megfelelő kernel eszközökhöz. Az udev használata esetén a /dev könyvtár a kernel aktuális állapotát tükrözi. Minden kerneleszközhöz pontosan egy eszközfájl tartozik. Ha az eszközt lekapcsolják a rendszerről, akkor az eszközcsomópont is eltűnik.
A /dev könyvtár tartalma egy ideiglenes fájlrendszeren található és a rendszer minden egyes indulásakor újból létrejönnek a rajta található fájlok. A kézzel létrehozott, vagy módosított fájlok újraindítást követően letörlődnek. Azokat a statikus fájlokat és könyvtárakat, amelyeknek állandóan jelen kell lenniük a /dev könyvtárban, függetlenül a hozzátartozó kerneleszköz állapotától, a /lib/udev/devices könyvtárba lehet helyezni. A rendszer indításakor ennek a könyvtárnak a tartalma átmásolódik a /dev könyvtárba, ugyanazokkal a tulajdonosokkal és jogosultságokkal, mint amelyekkel a fájlok a /lib/udev/devices könyvtárban rendelkeztek.
Az eszközökről információt a sysfs fájlrendszer biztosít. A kernel által felismert és inicializált minden eszközhöz létrejön egy könyvtár az eszköz nevével. Ez az eszközspecifikus jellemzőket tároló attribútumfájlokat tartalmaz.
Minden egyes alkalommal, amikor egy eszközt felvesznek vagy eltávolítanak, a kernel egy uevent eseményt küld, hogy értesítse az udev-et a változásról. Az udev démon indulás után elolvassa és feldolgozza az /etc/udev/rules.d/*.rules fájlok összes szabályát és a memóriában tartja őket. Ha a szabályfájlok módosulnak, bővülnek vagy törlődnek, a démon az udevadm control reload_rules parancs hatására képes frissíteni a memóriában tárolt szabályokat. Ugyanez történik az /etc/init.d/boot.udev reload parancs futtatásakor. További részletek az udev-szabályokról és szintaxisukról: 19.6. - A kernel eszközesemény-kezelésének befolyásolása udev-szabályokkal.
Minden fogadott esemény összehasonlítódik a meglévő szabályokkal. A szabályok felvehetnek vagy módosíthatnak eseménykörnyezeti kulcsokat, kérhetnek egy adott nevet a létrehozandó eszközcsomópontnak, felvehetnek a csomópontra mutató symlinkeket, illetve hozzáadhat az eszközcsomópont létrehozása után futtatandó programokat. Az illesztőprogram alap uevent eseményei egy kernel netlink socketen keresztül érkeznek.
A kernel busz-illesztőprogramjai felderítik az eszközöket. Minden egyes felismert eszközhöz a kernel létrehoz egy belső eszközstruktúrát és az illesztőprogram magja egy ueventet küld az udev démonnak. A buszeszközök egy speciálisan kialakított azonosítóval azonosítják magukat, amely leírja az eszköz fajtáját is. Általában ezek az azonosítók a gyártó és a termék azonosítójából és egyéb, az alrendszerre jellemző értékből állnak. Minden busz saját sémát használ az azonosítók kialakítására. Ez a MODALIAS. A kernel fogja az eszköz adatait, előállítja a MODALIAS azonosítót belőle, és elküldi az eseménnyel együtt. Egy USB-egér esetén például ez így néz ki:
MODALIAS=usb:v046DpC03Ed2000dc00dsc00dp00ic03isc01ip02
Minden egyes eszköz-illesztőprogram tartalmazza az általa kezelni képes eszközök ismert neveinek listáját. Ez a lista magában a kernelmodul-fájlban található. A depmod program kiolvassa az azonosítólistákat és létrehozza belőle a modules.alias fájlt a kernel /lib/modules könyvtárában, az összes éppen rendelkezésre álló modulhoz. Ezzel az infrastruktúrával egy modul betöltése mindössze annyiból áll, hogy meg kell hívni a modprobe-ot minden olyan eseményhez, amelyben van MODALIAS kulcs. A modprobe $MODALIAS meghívásakor összeveti az eszközhöz kialakított nevet a modul által biztosított nevek listájával. Ha van egyező bejegyzés, akkor az a modul betöltődik. Mindezt automatikusan az udev indítja.
Minden olyan eszközesemény, amely a rendszerindítási folyamat során még az udev démon futása előtt történik elveszik, hiszen az ezeket az eseményeket kezelő infrastruktúra a gyökér fájlrendszeren helyezkedik el és az ebben az időben még nem érhető el. E veszteség fedezésére a kernel egy uevent nevű fájlt biztosít a sysfs fájlrendszer minden
eszközéhez. A fájlba az add parancsot írva a kernel újraküldi ugyanazt az eseményt, amely elveszett a rendszerindítás közben. A /sys uevent fájljain egy egyszerű ciklust végrehajtva az összes esemény újragenerálható az eszközcsomópontok létrehozásához és az eszközök beállításához.
Például lehetséges, hogy rendszerindítás közben a jelen lévő USB-egeret nem inicializálja helyesen a korai rendszerindítási logika, mivel az illesztőprogram azon a ponton még nem áll rendelkezésre. Az eszköz felderítésének az eseménye elvész és nem sikerül kernelmodult találni az eszközhöz. Az esetlegesen csatlakoztatott eszközök kézi keresgélése helyett az udev egyszerűen újrakéri az összes eszközeseményt a kerneltől azután, hogy a gyökér fájlrendszer elérhetővé vált, úgyhogy az USB-egér eszköz eseménye egész egyszerűen lefut még egyszer. Most már meglesz a szükséges kernelmodul a felcsatolt gyökér fájlrendszerben és az USB-egér gond nélkül inicializálható.
A felhasználói területen nincs látható különbség egy eszköz indítás előtti csatlakoztatása és az eszköz futási időben történő felderítése között. Mindkét esetben ugyanazokat a szabályokat használja a rendszer az ellenőrzéshez és ugyanazok a beállított programok futnak le.
Az illesztőprogram alapeseményeinek és az udev-eseményfolyamatok időzítéseinek vizualizálására az udevadm monitor program használható.
UEVENT[1185238505.276660] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1 (usb) UDEV [1185238505.279198] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1 (usb) UEVENT[1185238505.279527] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0 (usb) UDEV [1185238505.285573] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0 (usb) UEVENT[1185238505.298878] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10 (input) UDEV [1185238505.305026] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10 (input) UEVENT[1185238505.305442] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10/mouse2 (input) UEVENT[1185238505.306440] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10/event4 (input) UDEV [1185238505.325384] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10/event4 (input) UDEV [1185238505.342257] add /devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10/mouse2 (input)
Az UEVENT sorok a kernel által a netlinken keresztül küldött eseményeket jelzik. Az UDEV sorok a befejezett udev eseménykezelőket mutatják. Az időzítés mikroszekundumban van megadva. Az UEVENT és az UDEV közötti idő az az idő, amíg az udev feldolgozta az eseményt, vagy amíg az udev démon késleltette a végrehajtását, hogy szinkronizálja az eseményt kapcsolódó, már futó eseményekkel. Például a merevlemez-partíciók eseményei mindig megvárják, hogy a fő lemezeszköz-esemény befejeződjön, mert a partícióesemények használhatják azokat az adatokat, amelyeket a fő lemezesemény lekért a hardvertől.
Az udevadm monitor --env parancs a teljes eseménykörnyezetet megjeleníti.
ACTION=add DEVPATH=/devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0/input/input10 SUBSYSTEM=input SEQNUM=1181 NAME="Logitech USB-PS/2 Optical Mouse" PHYS="usb-0000:00:1d.2-1/input0" UNIQ="" EV=7 KEY=70000 0 0 0 0 REL=103 MODALIAS=input:b0003v046DpC03Ee0110-e0,1,2,k110,111,112,r0,1,8,amlsfw
Az udev a rendszernaplóba (syslog) is küld üzeneteket. Az alapértelmezett syslog-prioritást, amely szabályozza, hogy mely üzenetek kerüljenek be a naplóba, az udev /etc/udev/udev.conf konfigurációs fájlja adja meg. A futó démon naplóprioritása az udevadm control log_priority=szint/szám paranccsal változtatható meg.
Az udev-szabályok az esemény bármely tulajdonságát vizsgálhatják, amelyet a kernel ad az eseményhez, vagy amelyet a kernel a sysfs fájlba exportál. A szabály kérhet további információkat is külső programoktól. Minden esemény összevetésre kerül a meglévő szabályokkal. A szabályok az /etc/udev/rules.d könyvtárban találhatók.
A szabályfájl minden egyes sora legalább egy kulcs-érték párt tartalmaz. Kétféle kulcs létezik, egyezési és hozzárendelési kulcsok. Ha az összes egyezési kulcs megegyezik az értékeikkel, akkor a szabály alkalmazva lesz és a hozzárendelési kulcsok megkapják a megadott értéket. Egy illeszkedő szabály megadhatja az eszközcsomópont nevét, felvehet a csomópontra mutató szimbolikus linkeket, vagy lefuttathat egy adott programot az eseménykezelés részeként. Ha egyetlen illeszkedő szabály sem található, akkor az alapértelmezett eszközcsomópont-nevet használja a rendszer az eszközcsomópont létrehozására. A szabály szintaxisát és az adatok vizsgálatára vagy importálására használható kulcsokat az udev kézikönyvoldala írja le részletesen. Az alábbi példaszabályok bemutatják az udev szabályszintaxisának legfontosabb elemeit. A példaszabályok mind az /etc/udev/rules.d/50-udev-default.rules alatt található alapértelmezett udev-halmazból lettek véve.
19.1. példa - Példa udev-szabályok¶
# console
KERNEL=="console", MODE="0600", OPTIONS="last_rule"
# serial devices
KERNEL=="ttyUSB*", ATTRS{product}=="[Pp]alm*Handheld*", SYMLINK+="pilot"
# printer
SUBSYSTEM=="usb", KERNEL=="lp*", NAME="usb/%k", SYMLINK+="usb%k", GROUP="lp"
# kernel firmware loader
SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"
A console szabály három kulcsból áll: egy illesztési kulcsból (KERNEL) és két hozzárendelési kulcsból (MODE, OPTIONS). A KERNEL illesztési szabály végigkeresi az eszközlistát console típusú eszközök után. Csak a pontos egyezések számítanak találatnak a szabály végrehajtását illetően. A MODE kulcs speciális jogosultságokat rendel az eszközcsomóponthoz, a jelen esetben olvasási és írási jogosultságokat kizárólag az eszköz tulajdonosa számára. Az OPTIONS kulcs hatására ez a szabály lesz az utolsó, amelyet a rendszer az ilyen típusú eszközökre alkalmaz. Még ha később akad is szabály, amelyik megfelelne az eszköztípusnak, semmilyen hatásuk nem lesz.
A serial devices szabály már nem része az 50-udev-default.rules fájlnak, de még így is érdemes megfontolni. Két illesztési kulcsból (KERNEL és ATTRS) és egy hozzárendelési kulcsból (SYMLINK) áll. A KERNEL kulcs végigkeresi az eszközlistát ttyUSB típusú eszközök után. A * helyettesítő karakter használata miatt ez a kulcs több ilyen eszközt is megtalál. A második illesztési kulcs, az ATTRS, ellenőrzi, hogy a sysfs product attribútumfájlja bármely ttyUSB eszközre vonatkozóan tartalmaz-e egy bizonyos karaktersorozatot. A hozzárendelési kulcs (SYMLINK) hatására létrejön egy szimbolikus lánc erre az eszközre a /dev/pilot alatt. A kulcsban használt operátor (+=) azt jelenti az udev számára, hogy ezt a műveletet kiegészítésképpen hajtsa végre, még akkor is, ha korábbi vagy későbbi szabályok más szimbolikus láncokat hoznának létre. Mivel a szabályban két illesztési kulcs van, csak akkor lesz alkalmazva, ha mind a két feltétel teljesül.
A printer szabály az USB-nyomtatókra vonatkozik, és két illesztési kulcsot tartalmaz (SUBSYSTEM és KERNEL). A teljes szabály alkalmazásához mindkettőnek teljesülnie kell. Három hozzárendelési kulcs foglalkozik az eszköztípus elnevezésével (NAME), a szimbolikus eszközlánc létrehozásával (SYMLINK) és az eszköztípus csoporttagságával (GROUP). A * helyettesítő karakter hatására a KERNEL kulcs több lp nyomtatóeszközt is megtalál. Helyettesítések vannak mind a NAME, mind a SYMLINK kulcsban, hogy ezek a karaktersorozatok kibővüljenek a belső eszköznévre. Például az első lp USB-nyomtató szimbolikus lánca a /dev/usblp0 lesz.
A kernel firmware loader szabály hatására az udev további firmware-t tölt be futás közben egy külső segédparancsfájl használatával. A SUBSYSTEM illesztési kulcs a firmware alrendszert keresi ki. Az ACTION kulcs ellenőrzi, hogy a firmware alrendszerhez tartozó eszköz fel lett-e véve. A RUN+= kulcs indítja a firmware.sh parancsfájl végrehajtását a betöltendő firmware kikereséséhez.
Néhány jellemző egységes az összes szabályban:
Mindegyik szabály egy vagy több vesszővel elválasztott kulcs-érték párból áll.
A kulcs műveletét az operátor határozza meg. Az udev-szabályok többféle operátort is támogatnak.
Minden megadott értéket idézőjelek közé kell tenni.
A szabályfájl minden sora egy-egy szabályt ábrázol. Ha egy szabály hosszabb lenne egy sornál, akkor a \ karakterrel lehet összekapcsolni az egymás utáni sorokat, pontosan úgy, mint a parancsértelmezőben.
Az udev-szabályok a parancsértelmezőhöz hasonló mintaillesztést támogatnak, a *, ? és [] helyettesítő karakterek/minták alkalmazásával.
Az udev-szabályok támogatják a helyettesítéseket.
A kulcsok létrehozásakor többféle operátor közül is lehet választani, a létrehozni kívánt kulcs típusától függően. Az illesztési kulcsok jellemzően arra szolgálnak, hogy kikeressenek egy értéket, amely vagy pontosan megegyezik, vagy éppenhogy nem egyezik meg a kereséshez megadott értékkel. Az illesztési kulcsok az alábbi operátorok valamelyikét tartalmazhatják:
==
Egyenlőség vizsgálata. Ha a kulcs keresési mintát tartalmaz, akkor a mintának megfelelő összes eredmény érvényesnek számít.
!=
Nem egyenlőség (eltérés) vizsgálata. Ha a kulcs keresési mintát tartalmaz, akkor a mintának megfelelő összes eredmény érvényesnek számít.
A hozzárendelési kulcsok az alábbi operátorok valamelyikét tartalmazhatják:
=
Érték hozzárendelése egy kulcshoz. Ha a kulcs korábban értékek egy listáját tartalmazta, akkor a kulcs visszaáll és csak ez az egy érték lesz hozzárendelve.
+=
Érték hozzáadása egy bejegyzések listáját tartalmazó kulcshoz.
:=
Végső érték hozzáadása. Minden későbbi szabály módosítását letiltja.
Az udev-szabályok támogatják a helykitöltők és helyettesítések használatát. Ugyanúgy használhatja őket, mint bármilyen más parancsfájlban. Az udev-szabályokban az alábbi helyettesítések használhatók:
%r, $root
Az eszközkönyvtár, alapértelmezés szerint a /dev.
%p, $devpath
A DEVPATH változó értéke.
%k, $kernel
A KERNEL értéke vagy a belső eszköznév.
%n, $szám
Az eszköz száma.
%N, $tempnode
Az eszközfájl ideiglenes neve.
%M, $major
Az eszköz fő száma.
%m, $minor
Az eszköz alszáma.
%s{attribútum}, $attr{attribútum}
Egy sysfs attribútum értéke (amelyet az attribútum határoz meg).
%E{változó}, $attr{változó}
Egy környezeti változó értéke (amelyet a változó ad meg).
%c, $eredmény
A PROGRAM kimenete.
%%
A % karakter.
$$
A $ karakter.
Az illesztési kulcsok írják le azokat a feltételeket, amelyeknek teljesülniük kell ahhoz, hogy az udev-szabályok alkalmazhatók legyenek. Az alábbi illesztési kulcsok használhatók:
ACTION
Az eseményművelet neve, például add vagy remove egy eszköz hozzáadásához vagy eltávolításához.
DEVPATH
Az eseményeszköz eszköz elérési útja, például DEVPATH=/bus/pci/drivers/ipw3945 az ipw3945 illesztőprogrammal kapcsolatos összes esemény kikereséséhez.
KERNEL
Az esemény eszközének belső (kernel) neve.
SUBSYSTEM
Az esemény eszközének alrendszere, például SUBSYSTEM=usb az összes USB-eszközzel kapcsolatos eseményhez.
ATTR{fájlnév}
Az esemény eszközének sysfs attribútumai. A fájlnév vendor attribútumában található karaktersorozat kereséséhez haználható, például ATTR{vendor}=="On[sS]tream".
KERNELS
Végigkeresteti az udev-vel az eszköz elérési utat felfelé egy illeszkedő eszköznév után.
SUBSYSTEMS
Végigkeresteti az udev-vel az eszköz elérési utat felfelé egy illeszkedő alrendszernév után.
DRIVERS
Végigkeresteti az udev-vel az eszköz elérési utat felfelé egy illeszkedő eszköz-illesztőprogram után.
ATTRS{fájlnév}
Végigkeresteti az udev-vel az eszköz elérési utat felfelé egy illeszkedő sysfs attribútumértékű eszköz után.
ENV{kulcs}
Egy környezeti változó értéke, például ENV{ID_BUS}="ieee1394" a FireWire busz azonosítóval kapcsolatos események kikereséséhez.
PROGRAM
Végrehajtat az udev-vel egy külső programot. A sikerhez a programnak nulla kilépési kóddal kell visszatérnie. A program (a standard kimenetre írt) kimenete a RESULT kulcsban érhető el.
RESULT
A legutolsó PROGRAM hívás kimenetének felel meg. Használhatja ezt a kulcsot ugyanabban a szabályban, mint amelyikben a PROGRAM kulcsot, de lehet egy későbbiben is.
Az illesztési kulcsokkal ellentétben, a hozzárendelési kulcsok nem írják le azokat a feltételeket, amelyeknek meg kell felelniük. A hozzárendelési értékek, nevek és eszközökhöz tartozó műveletek az udev kezeli.
NÉV
A létrehozandó eszközcsomópont neve. Miután a szabály beállította a csomópont nevét, a csomópontra vonatkozó összes többi NAME kulcs figyelmen kívül marad.
SYMLINK
A létrehozandó csomóponttal kapcsolatos szimbolikus lánc neve. Több illesztési szabály is megadható szimbolikus láncok létrehozására az eszközcsomóponttal együtt. Több szimbolikus lánc is megadható egy csomópothoz egy szabályban, szóközzel elválasztva a szimbolikus láncok neveit.
OWNER, GROUP, MODE
Egy új eszközcsomópont jogosultságai. Az itt megadott értékek felülírják a befordított értékeket.
ATTR{kulcs}
Az esemény eszközének sysfs attribútumába írandó értéket adja meg. Az == operátor használata esetén ez a kulcs használható egy sysfs attribútum értékének vizsgálatára is.
ENV{kulcs}
Kiexportáltat az udev-vel egy változót a környezetbe. Az == operátor használata esetén ez a kulcs használható egy környezeti változó értékének vizsgálatára is.
RUN
Felvetet az udev-vel egy programot az eszközhöz végrehajtandó programok listájába. Fontos észben tartani, hogy ezek igen rövid feladatok legyenek, hogy ne blokkolják az eszköz későbbi eseményeit.
LABEL
Egy címkét ad meg, amelyre majd a GOTO ugrani tud.
GOTO
Kihagyat az udev-vel egy sor szabályt, és azzal folytatja, amelynek a címkéjére a GOTO kulcs hivatkozik.
IMPORT{típus}
Betölt változókat az esemény környezetébe (például egy külső program kimenetét). Az udev többféle típusú változót képes importálni. Ha nincs típus megadva, akkor az udev megpróbálja meghatározni a típust a fájljogosultságok végrehajtás bitje alapján.
A program hatására az udev végrehajt egy külső programot és beimportálja annak kimenetét.
A file hatására az udev egy szövegfájlt importál.
A parent hatására az udev a szülő eszközből importálja a tárolt kulcsokat.
WAIT_FOR_SYSFS
Arra utasítja az udev-et, hogy várja meg, hogy létrejöjjön a megadott sysfs fájl egy adott eszközhöz. Például a WAIT_FOR_SYSFS=''ioerr_cnt'' hatására az udev megvárja, amíg létrejön az ioerr_cnt fájl.
KAPCSOLÓK
Az OPTION kulcsnak többféle értéke is lehet:
A last_rule hatására az udev figyelmen kívül hagyja az összes későbbi szabályt.
Az ignore_device hatására az udev az egész eseményt figyelmen kívül hagyja.
Az ignore_remove hatására az udev figyelmen kívül hagyja az eszköz összes későbbi eseményét.
Az all_partitions hatására az udev eszközcsomópontokat készít egy blokkeszköz minden rendelkezésre álló partíciója számára.
A dinamikus eszközkönyvtár és az udev szabályinfrastruktúrája lehetővé teszi az összes lemezes eszköz állandó elnevezését – függetlenül attól, hogy milyen sorrendben ismerte fel őket a rendszer, vagy milyen kapcsolatot használ az adott eszköz. A kernel által létrehozott minden megfelelő blokkeszközt olyan eszközök vizsgálnak, amelyek speciális ismeretekkel rendelkeznek bizonyos buszokról, meghajtótípusokról vagy fájlrendszerekről. A kernel által biztosított dinamikus eszközcsomópont-név mellett az udev az eszközre mutató állandó szimbolikus láncok osztályait is fenntartja.
/dev/disk
|-- by-id
| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B -> ../../sda
| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part1 -> ../../sda1
| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part6 -> ../../sda6
| |-- scsi-SATA_HTS726060M9AT00_MRH453M4HWHG7B-part7 -> ../../sda7
| |-- usb-Generic_STORAGE_DEVICE_02773 -> ../../sdd
| `-- usb-Generic_STORAGE_DEVICE_02773-part1 -> ../../sdd1
|-- by-label
| |-- Photos -> ../../sdd1
| |-- SUSE10 -> ../../sda7
| `-- devel -> ../../sda6
|-- by-path
| |-- pci-0000:00:1f.2-scsi-0:0:0:0 -> ../../sda
| |-- pci-0000:00:1f.2-scsi-0:0:0:0-part1 -> ../../sda1
| |-- pci-0000:00:1f.2-scsi-0:0:0:0-part6 -> ../../sda6
| |-- pci-0000:00:1f.2-scsi-0:0:0:0-part7 -> ../../sda7
| |-- pci-0000:00:1f.2-scsi-1:0:0:0 -> ../../sr0
| |-- usb-02773:0:0:2 -> ../../sdd
| |-- usb-02773:0:0:2-part1 -> ../../sdd1
`-- by-uuid
|-- 159a47a4-e6e6-40be-a757-a629991479ae -> ../../sda7
|-- 3e999973-00c9-4917-9442-b7633bd95b9e -> ../../sda6
`-- 4210-8F8C -> ../../sdd1/sys/*
A Linux kernel által biztosított virtuális fájlrendszer, amely exportálja az összes ismert eszközt. Az udev ezt az információt használja eszközcsomópontok létrehozására a /dev alatt.
/dev/*
Dinamikusan létrehozott eszközcsomópontok és statikus tartalom, rendszerindításkor átmásolva a /lib/udev/devices/* alól.
Az udev infrastruktúra kulcsfontosságú elemeit az alábbi fájlok és könyvtárak tartalmazzák:
/etc/udev/udev.conf
A fő udev konfigurációs fájl.
/etc/udev/rules.d/*
udev eseményillesztési szabályok.
/lib/udev/devices/*
Statikus /dev tartalom.
/lib/udev/*
Az udev-szabályokból meghívott segítő programok.
További információ az udev infrastruktúráról a következő kézikönyvoldalakon olvasható:
Általános információ az udevről, a kulcsokról, szabályokról és más fontos konfigurációs kérdésekről.
Az udevadm használható az udev futási idejű viselkedésének szabályozására, kernelesemények kérésére, az eseménysor kezelésére, valamint egyszerű hibakeresési mechanizmusok biztosítására.
Információ az udev eseménykezelő démonjáról.