Eudev
Az eudev az udev, a systemd eszközfájl kezelőjének egy fejlesztési elágazása a Linux kernel számára.[1] Ez kezeli az eszköz /dev helyeit, és az összes felhasználói térben végzett műveletet eszközök hozzáadása vagy eltávolítása esetén.
Az eudev célja, hogy jobb kompatibilitást érjen el olyan meglévő szoftverekkel, mint az OpenRC init rendszer, az Upstart init rendszer, régebbi Linux kernelek, különféle eszközkészletek, valamint bármi más, amire szükség van[2], de amelyeket a udev nem jól támogat.
Az eudev neve hasonló az ebuild, eclass, emerge stb. elnevezésekhez, követve az 'E' előtag konvenciót, amelyet a Gentoo alapítója, Daniel Robbins indított el.
A systemd init rendszert futtató rendszerbeállítások nem használják az eudev-et.
A /dev könyvtár
A legtöbb Linux-felhasználó megérti, hogy a /dev/sda1 csak egy gyors módja annak, hogy a kernel által talált első lemez első partíciójára hivatkozzon. Ez elég könnyű, igaz?
De vegyük figyelembe az üzem közben cserélhető eszközöket, mint az USB, IEEE 1394, üzem közben cserélhető PCI stb. Ezek közül melyik az első eszköz, és meddig az? Mi lesz a többi készülék neve, ha az első eltűnik? Milyen hatással lesz ez a folyamatban lévő tranzakciókra? Nem lenne mókás, ha egy nyomtatási feladat hirtelen átkerülne egy csúcskategóriás lézernyomtatóból egy majdnem halott mátrixnyomtatóba, csak azért, mert valaki úgy döntött, hogy kihúzza a lézernyomtatót (ami véletlenül az első nyomtató volt)?
Lépjen be az eszközkezelőbe. Egy modern eszközkezelőnek:
- Felhasználói térben fut.
- Dinamikusan hoz létre és távolít el eszközfájlokat.
- Konzisztens eszközelnevezést biztosít.
- Felhasználói térben szolgáltat alkalmazásprogramozási felületet (API-t).
Minden alkalommal, amikor változás történik az eszközstruktúrán belül, a kernel egy uevent-et bocsát ki, amelyet az eszközkezelő veszi fel. az eszközkezelő ezután követi az /etc/udev/rules.d, /run/udev/rules.d és /lib/udev/rules.d könyvtárakat. Az uevent-ben található információk alapján megkeresi a kiváltáshoz szükséges szabályt vagy szabályokat, és végrehajtja a szükséges műveleteket. Ezek a műveletek magukban foglalhatják eszközfájlok létrehozását vagy törlését, és bizonyos firmware-fájlok kernelmemóriába való betöltését is kiválthatják.
Telepítés
USE jelölőzászlók
Néhány szoftvercsomag ismeri a udev
USE jelölőzászlót, amely lehetővé teszi a virtual/udev integrációt.
Emerge
A world set-be történő regisztráció elkerülése érdekében az oneshot opciót kell használni.
root #
emerge --ask --oneshot sys-fs/eudev
Beállítás
RC szolgáltatás
Az RC neve udev, nem eudev. A sysinit futási szintbe kell regisztrálni.
root #
rc-update add udev sysinit
* rc-update: udev already installed in runlevel `sysinit'; skipping
A sys-fs/udev-init-scripts 29-es verziójától kezdve a udev-trigger
-t is hozzá kell adni a sysinit futási szinthez.
Opcionális: Klasszikus hálózati interfész elnevezésének a megtartása
This section is obsolete. See Udev#Optional: Disable_or_override_predictable_network_interface_naming for updated instructions.
Network device names such as eth0 or wlan0 as provided by the kernel are normally changed on system boot (see dmesg) by the /lib/udev/rules.d/80-net-name-slot.rules udev rule.
To keep the classic naming this rule can be overwritten with an equally named empty file in the /etc/udev/rules.d directory:
root #
touch /etc/udev/rules.d/80-net-name-slot.rules
Alternatívaként adja hozzá a net.ifnames=0
parancsot a kernel parancssorához, módosítsa az alapértelmezett szabályzatot, vagy hozzon létre egy egyéni szabályzatot.
Egy érdekes erőforrás a hálózati elnevezéssel kapcsolatban a I don't like this, how do I disable this a Freedesktop wikiben.
Hibaelhárítás
Az udevadm használata
Indítsa el a udevadm monitor parancsot, és figyelje meg, hogy mi történik:
user $
udevadm monitor
Szerezze meg az eszközinformációkat a udevadm info parancs segítségével, majd adja meg az eszköz elérési útját:
user $
udevadm info -p /devices/pci0000:00/0000:00:1d.7
Szerezze meg az eszköz elérési útját a nevének használatával:
user $
udevadm info -q path -n input/mouse1
/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3.4/1-3.4:1.0/0003:046D:C404.0006/input/input24/mouse1
Teszteljen egy esemény futtatását a udevadm test parancs használatával, amelyet az esemény teszteléséhez szükséges eszköz elérési útja követ:
user $
udevadm test /devices/pci0000:00/0000:00:1d.7
Az udevadm parancsok teljes listájának megtekintéséhez:
user $
udevadm -h
Régebbi kiadások migrálása
udev 171-r10-ról eudev 1.2-r1-re
Tekintse meg ezt a bejegyzést a Gentoo fórumon.
Meghibásodott rendszer váltása udev-ről eudev-re
Tekintse meg ezt a bejegyzést a Gentoo fórumon.
További olvasnivaló a témában
- Udev — systemd's device manager for the Linux kernel.
- Gentoo eudev Project — The official Gentoo project fork of udev.
- Allow only known usb devices — describes how to protect a GNU/Linux system against rogue USB devices via a white listing policy.
- Google Summer of Code/2016/Ideas/Eudev
Külső források
- Moving from udev (171-r10) to eudev (1.2-r1) on the Gentoo Forums
Hivatkozások
- ↑ Bug 575718 - Request for council decision RE virtual/udev default provider, Gentoo Bugzilla Főoldala, (Utolsó módosítás) 2016. február 27. Lekért: 2016. március 1.
- ↑ Project:Eudev, Gentoo Wiki, (Utolsó módosítás) 2015. november 12. Lekért: 2016. március 11.