Obsah
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.
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ří:
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.
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).
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*).