přejít na obsah přejít na navigaci

Linux E X P R E S, Jak se pracuje s moduly jádra?

Jak se pracuje s moduly jádra?

Jak se zavádějí jaderné moduly do paměti? Tato otázka může trápit mnohé uživatele, my se ji pokusíme zodpovědět.


V první řadě je nutné upozornit, že zavádět moduly může pouze uživatel root, který vlastně může cokoliv. Proč tomu tak je? Root se stará o to, aby celý systém v pořádku běžel, je to administrátor. Běžný uživatel má systém pouze používat, nikoliv zasahovat do jeho běhu či funkčnosti. Samozřejmě může ovlivňovat programy, které používá, jejich nastavení se ale ukládá právě a pouze v adresáři tohoto uživatele. Říká se tomu uživatelský prostor, user space.

Oproti tomu kernel space je prostor, kde panuje jádro. Jedná se samozřejmě o správu služeb a prostředků, jež ovlivňují celý systém, tedy i konkrétní user spaces. Zavedením modulu se mění podmínky pro jednotlivé uživatelské programy. Proto je může ovlivnit pouze kvalifikovaný uživatel - správce čili root. Tolik teoretická úvaha. Jako root tedy modul načtete příkazem insmod jméno_modulu. Může se však stát, že se vložení modulu do paměti nezdaří a příkaz ohlásí chybu. V mnoha skriptech by to byla obtížně řešitelná situace, a proto existuje příkaz modprobe, který se pokusí načíst modul do paměti. Pokud se to zdaří, vrací interně kladnou hodnotu, pokud ne, vrací hodnotu zápornou a vypíše chybové hlášení. Taková můžeme mnohdy vídat při startu systému (což svědčí o lenosti roota tyto příčiny odstranit). Ve skriptu lze však tento stav snadno ošetřit a pokračovat. Moduly jádra jsou uloženy v adresáři /lib/modules/verze-jádra/.

# modprobe linuxexpres
FATAL: Module linuxexpres not found.

Stejně jako lze moduly do paměti načíst, lze je i vyjmout. Problém nastává, je-li zařízení, které modul obsluhuje, používáno. Moduly jsou také mnohdy závislé jeden na druhém. V takovém případě je nutné hledat modul, který stojí na začátku závislostní řady, nebo přestat používat zařízení (obvykle neřešitelné).

# lsmod |grep usb
usbserial              26088  2 visor,pl2303
usblp                  10752  0 

Jak tyto závislosti zjistíme? Stačí použít příkaz lsmod neboli "list modules". Zobrazí název modulu, jeho velikost a "vlastníka", resp. modul, který jej využívá. Je tedy nutné najít ten modul, který nemá žádného vlastníka a začít s odstraňováním.

# rmmod usblp
# lsmod |grep usb usbserial              26088  2 visor,pl2303

Další zajímavý příkaz je ještě modinfo. Vypisuje parametry, které ovlivňují chování modulu a také informace o autorech. Mnohdy je to klíč k pochopení správných parametrů. Více informací poskytují jednotlivé manuálové stránky.

# modinfo usbserial
author:         Greg Kroah-Hartman, greg@kroah_com,
http://www.kroah.com/linux/
description:    USB Serial Driver core
version:        v2.0
license:        GPL
parm:           debug:Debug enabled or not
parm:           vendor:User specified USB idVendor
parm:           product:User specified USB idProduct
vermagic:       2.6.10 486 gcc-3.3
depends:        
srcversion:     F93DD337E70663249DF3E0D

Nahoru

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

Vlastimil Ott

Vlastimil Ott

Spolupracuji s obecně prospěšnou společností Liberix, školím LibreOffice, WordPress, rozumím open source.


  • Distribuce: Xubuntu, Linux Mint
  • Grafické prostředí: Xfce

| proč linux | blog


Redakční blog

Pavel Fric

Pavel Fric, 10. April

Zapojte se do tvorby distribuce Mageia

Podílejte se na vytváření balíčků pro Mageiu, dělejte, co je potřeba, staňte se baličem


Pavel Fric

Pavel Fric, 13. March

Lollypop

Lollypop je hudební přehrávač navržený, jak ukazuje jeho podoba, aby výborně zapadl do pracovního...


Pavel Fric

Pavel Fric, 26. February

QElectroTech

Kreslení elektrotechnických i jiných výkresů


Všechny blogy »