Obsah
Abstrakt
Linuxové jádro 2.6 přineslo nové řešení v uživatelském
prostoru umožňující používat v dynamickém adresáři
/dev pro zařízení stálá a konzistentní označení:
udev. Předchozí implementace /dev
pomocí devfs již není podporována a byla nahrazena
implementací založenou na udev.
Tradičně byly v linuxových systémech v adresáři /dev
umístěny uzly (device nodes) pro všechny možné typy zařízení, bez ohledu na
jejich skutečnou existenci. Adresář proto zabíral velké množství místa.
Příkaz devfs přinesl významné zlepšení, neboť díky němu
mají v adresáři /dev své uzly pouze ta zařízení, která
skutečně existují.
Nový způsob vytváření uzlů přinesl příkaz udev. Ten
porovná informace dostupné ze systému souborů sysfs
s daty zadanými uživatelem ve formě pravidel. sysfs je
nový souborový systém dostupný v jádře 2.6. Poskytuje základní informace o
zařízeních připojených k systému. Souborový systém sysfs
je připojený jako /sys.
Pravidla není nutno vytvářet. Pokud je k systému připojeno zařízení, je vytvořen příslušný uzel, Pravidla ovšem umožňují změnit jména uzlů. Lze tak nahradit nesrozumitelná jména jmény snadno zapamatovatelnými a dosáhnout konzistentních jmen zařízení, když je připojeno více zařízení stejného typu.
Dvě připojené tiskárny budou například, není-li určeno jinak, označeny jako
/dev/lp0 a /dev/lp1. Které
tiskárně bude přiřazen který uzel závisí na pořadí, v jakém jsou zapnuty.
Jiným příkladem jsou externí zařízení pro ukládání dat, jako USB disky.
Příkaz udev umožňuje přesně zvolit cesty vkládané do
/etc/fstab.
Pravidla načítá udev ze souboru
/etc/udev/udev.rules ještě předtím, než vytvoří uzly
v adresáři /dev. Pokud odpovídá více pravidel,
použije první z nich. Komentáře jsou v souboru uvozeny znakem hash
(#). Pravidla jsou zapisována v následujícím formátu:
klíč, [klíč,...] NAME [, SYMLINK]
Každé pravidlo musí obsahovat alespoň jeden klíč, neboť pravidla jsou
zařízením přiřazována právě pomocí těchto klíčů. Rovněž je nezbytné určit
jméno (parametr name). To je totiž přiřazeno uzlu zařízení vytvořenému
v adresáři /dev. Volitelný parametr symlink umožňuje
vytvoření uzlů i na dalších místech. Pravidlo pro tiskárnu může vypadat
například takto:
BUS="usb", SYSFS{serial}="12345", NAME="lp_hp", SYMLINK="printers/hp"
V příkladu jsou použity dva klíče — BUS a
SYSFS{serial}. Tyto klíče říkají udev,
aby porovnal sériové číslo obsažené v klíči se sériovým číslem zařízení
připojeného na USB sběrnici. Pokud oba klíče souhlasí, přiřadí zařízení
jméno lp_hp v adresáři /dev.
Navíc na něj vytvoří symbolický odkaz /dev/printers/hp.
Adresář printers se vytvoří automaticky. Tiskové
úlohy bude možno posílat jak na /dev/printers/hp, tak
i na /dev/lp_hp.