Kapitola 18. Hotplug systém

Obsah

18.1. Zařízení a rozhraní
18.2. Hotplug události
18.3. Hotplug agenti
18.4. Automatické nahrávání modulů
18.5. Hotplug PCI zařízení
18.6. Startovací skripty coldplug a hotplug
18.7. Analýza chyb

Abstrakt

Podpora pro hotplug v systému SUSE LINUX byla vyvinuta ve spolupráci s projektem Linux Hotplug, ale vyznačuje se několika odlišnostmi. Hlavní rozdíl spočívá v tom, že není použit multiplexor událostí /etc/hotplug.d, ale hotplug skripty se spouštějí přímo. Je-li to možné, jsou pro inicializaci či zastavení hotplug zařízení použity skripty /sbin/hwup a /sbin/hwdown.

Hotplug systém se nepoužívá jen pro zařízení, která mohou být připojena a odpojena během provozu systému, ale také pro zařízení detekovatelná až po spuštění linuxového jádra. Zařízení a jejich rozhraní jsou vložena do souborového systému sysfs, připojeného pod /sys. Dokud není jádro zavedeno, inicializují se pouze naprosto nezbytná zařízení, jako sběrnice, startovací disky a klávesnice.

Obvykle je přítomnost zařízení zjištěna ovladačem, který spustí hotplug událost. Ta je zpracována vhodnými skripty. Pro zařízení, která nelze detekovat automaticky, se používá coldplug a statická konfigurace.

Kromě několika historických výjimek je většina zařízení inicializována při startu systému nebo v okamžiku připojení. Inicializace obvykle vede k registraci rozhraní. Registrace rozhraní spouští hotplug události, které rozhraní automaticky nakonfigurují, Dříve se zařízení inicializovala na základě konfiguračních dat. Dnes systém vyhledává vhodné konfigurační údaje na základě existujících zařízení. Postup při inicializaci byl tedy převrácen, čímž je umožněno pružnější použití hotplug zařízení.

Nejdůležitější vlastnosti hotplug systému se nastavují ve dvou souborech. První z nich, /etc/sysconfig/hotplug, obsahuje proměnné ovlivňující chování hotplug a coldplug systému. Všechny proměnné jsou opatřeny vysvětlujícími komentáři. Druhý soubor, /proc/sys/kernel/hotplug, obsahuje jméno spustitelného programu volaného jádrem. Konfigurace zařízení je uložena v adresáři /etc/sysconfig/hardware. Od verze SUSE LINUX 9.3 je tento soubor prázdný, protože udevd získává zprávy hotplugu přes netlink soket.

18.1. Zařízení a rozhraní

Hotplug systém spravuje zařízení a rozhraní. Zařízení je spojeno se sběrnicí či rozhraním. Sběrnici lze pokládat za vícenásobné rozhraní. Rozhraní propojuje zařízení navzájem nebo s aplikací. K dispozici jsou také virtuální zařízení jako např. síťové tunely. Jednotlivá zařízení ke své práci obvykle vyžadují ovladač v podobě modulu jádra. Rozhraní jsou většinou reprezentována nody zařízení vytvořenými udev. K pochopení celkové koncepce je nutné rozlišovat mezi zařízením a rozhraním.

Zařízení vložené do souborového systému sysfs najdete v /sys/devices, rozhraní v /sys/class nebo /sys/block. Všechna rozhraní v sysfs by měla být prolinkována s příslušnám zařízením. Bez tohoto propojení by nebylo možné zjistit, které rozhraní patří ke zařízení a nebylo by možné najít vhodné nastavení.

Zařízení se adresují pomocí popisu zařízení. Popisem může být cesta k zařízení v souborovém systému sysfs (/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0), místo připojení (bus-pci-0000:02:00.0), jedinečné identifikační číslo (id-32311AE03FB82538) nebo obdobný údaj.

Rozhraní se dříve adresovala pomocí jmen. Ta ale odrážela pořadí existujících zařízení a mohla se měnit, kdykoliv bylo nějaké zařízení přidáno nebo odstraněno. Proto je možné rozhraní adresovat také popisem přidruženého zařízení. Z kontextu obvykle jasně plyne, zda se popis týká samotného zařízení nebo jeho rozhraní. Mezi typické příklady zařízení, rozhraní a jejich popisů patří:

PCI síťová karta

Zařízení je připojeno na PCI sběrnici (/sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.0 nebo bus-pci-0000:02:00.0) a má síťové rozhraní (eth0, id-00:0d:60:7f:0b:22 nebo bus-pci-0000:02:00.0). Síťové rozhraní je využíváno síťovými službami nebo připojeno k virtuálnímu síťovému zařízení jako je tunel nebo síť VLAN.

PCI SCSI řadič

Zařízení (/sys/devices/pci0000:20/0000:20:01.1/host1/1:0:0:0 nebo bus-scsi-1:0:0:0) vytvářející několik fyzických rozhraní ve formě sběrnice (/sys/class/scsi_host/host1).

SCSI pevný disk

Zařízení (/sys/devices/pci0000:20/0000:20:01.1/host1/1:0:0:0 nebo bus-scsi-1:0:0:0) s několika rozhraními (/sys/block/sda*).


SUSE LINUX Příručka správce systému 9.3