9.4. Moduly jádra

Aby zařízení pracovalo, musí pro něj v systému existovat ovladač, pomocí kterého k němu systém (v Linuxu jádro) přistupuje. Možné způsoby integrace ovladačů do systému lze:

Který ovladač se zakompiluje do jádra a který jako modul je definováno v konfiguraci jádra. V zásadě by mělo platit, že části, které nejsou přímo potřeba běhu k systému, by měly být zaváděny jako moduly. Tak se zajistí, že jádro není příliš velké pro zavedení BIOSem nebo zavaděčem. Ovladače pro ext2, SCSI mechaniky a SCSI subsystém by měly být zakompilovány do jádra. Naopak podpora isofs, msdos nebo zvuku patří k typickým částem zaváděným jako moduly.

Moduly jádra se nacházejí v adresáři /lib/modules/<verze>, kde verze je aktuální verze jádra.

9.4.1. Detekce hardwaru příkazem hwinfo

Příkazem hwinfo můžete zjistit hardware vašeho systému a zvolit správné ovladače. Rychlou nápovědu k příkazu získáte zadáním hwinfo --help. Pokud potřebujete např. informaci o SCSI zařízeních, zdajte příkaz hwinfo --scsi. Všechny tyto infromace také samozřejmě najdete v modulu informací o hardwaru programu YaST.

9.4.2. Práce s moduly

Pro práci s moduly se používají tyto příkazy:

insmod

Příkazem insmod se zadaný modul zavede. Hledá se přitom v adresáři /lib/modules/verze_jadra. (Tento příkaz i následující se však většinou nevolají samostatně, ale obecnějším příkazem modprobe, viz dále.)

rmmod

Odstraní zadaný modul. To ovšem není možné, pokud je tento modul používán. Například není možné odstranit modul isofs, pokud je stále ještě připojeno CD.

depmod

Tento příkaz vytvoří soubor se jménem modules.dep v adresáři /lib/modules/verze_jadra, kde jsou definovány závislosti mezi jednotlivými moduly. Tím se zajistí, že při zavedení určitého modulu se také automaticky zavedou všechny závislé moduly.

modprobe

Zavádí a odstraňuje moduly s ohledem na vzájemné závislosti. Poskytuje též řadu dalších služeb, jako postupné zkoušení více modulů stejného typu, než se jeden osvědčí. Na rozdíl od zavádění programem insmod pracuje program modprobe se souborem /etc/modprobe.conf. V současné době představuje modprobe doporučený nástroj k zavádění modulů. Podrobné vysvětlení jeho jednotlivých možností najdete na příslušných manuálových stránkách.

lsmod

Ukazuje, které moduly jsou právě zavedeny a kolik dalších modulů je používá. Moduly, zavedené kernelovým démonem, jsou označeny jako autoclean, což naznačuje, že budou automaticky odstraněny, pokud nejsou používány a vyprší jim povolená doba nečinnosti.

modinfo

Zobrazí infromace o modulu. Protože jde o informace získané přímo od modulu, zobrazují se pouze informace z modulu. Mohou obsahovat jméno autora, popis, licenci, parametry, závislosti a aliasy.

9.4.3. Soubor /etc/modprobe.conf

Zavádění modulů ovlivňují soubory /etc/modprobe.conf ad /etc/modprobe.conf.local a adresář /etc/modprobe.d. Více najdete v manálové strance man modprobe.conf. V tomto souboru musí být zadány všechny parametry modulů přistupujících k hardwaru. Některé moduly, např. ovladač CD mechaniky nebo síťové karty, mohou vyžadovat zvláštní parametry. Možné parametry jsou popsané ve zdrojových kódech jádra. Po instalaci balíčku kernel-source najdete potřebné infromace v adresáři /usr/src/linux/Documentation.

9.4.4. Kmod—zavaděč modulů jádra

Zavaděč modulů jádra je jeden z nejelegantnějších způsobů práce s moduly. Kmod (kernel module loader) zajišťuje sledování na pozadí a stará se o správné zavadení potřebných modulů pomocí příkazu modprobe.

Kmod aktivujete volbou Kernel module loader (CONFIG_KMOD) v konfiguraci jádra. Kmod neodstraňuje moduly automaticky. Omezení pro něj představuje pouze velikost RAM. Z toho důvodu je pro servery se zvlášními funkcemi lepším řešením monolitické jádro s několika ovladači.


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