Moduly linuxového jádra

Současné linuxové jádro je kompromisem mezi monolitickým a modulárním jádrem.

U monolitického jádra jsou veškeré ovladače zakompilovány do jednoho celku. Kdežto u modulárního jsou ovladače v modulech, které se natahují do jádra až v případě potřeby.

Nemodulární jádro

editovat

Linuxové jádro je soubor uložený v adresáři /boot a má obvykle předponu "vmlinuz". V případě, že není přeložené s podporou modulů, jsou v něm všechny potřebné ovladače hardware, nezbytné pro příslušný stroj, zakompilovány natvrdo. Ve starších verzích Linuxu to byla jediná možnost, jak do jádra přidat novou funkci.

Výhody: Nedochází k časovému zpoždění při natahování modulu Neexistuje možnost infikování jádra nakaženým nebo poškozeným modulem Ideální pro embeded zařízení

Nevýhody: Pro každé nové zřízení (nový ovladač, nebo i novou funkci) je třeba jádro překompilovat. Tzn. systém vyžaduje restart pro přidání či odebrání dalšího zařízení. Jádro, které by obsahovalo všechny možné ovladače, by zabíralo příliš mnoho místa v paměti a, což je důležité vědět, paměťový prostor jádra není nikdy odswapován, sídlí v paměti neustále, přičemž drtivá většina ovladačů by se nidky nespustila.

Občas se o jádře bez podpory modulů hovoří jako o monolitickém, ale to není přesné. Termín monolitické jádro označuje skutečnost, že všechen jaderný kód sdílí stejný paměťový prostor. Linuxové jádro s podporou nahrávání modulů je stále monolitické.

Modulární jádro

editovat

Může kromě vlastního jádra tvořit ještě tzv. ramdisk. Ramdisk je s soubor obvykle začínající předponou initrd, umístěný rovněž v adresáři /boot. Není to však nezbytně nutné, pokud má jádro zakompilované veškeré ovladače potřebné pro zavedení základního systému (tj., připojení disku a souborového systému s ostatními moduly jádra). Pokud jsou v jádře zakompilovány pouze nejnutnější ovladače, pak je vhodné použít ramdisk. Ten se při startu rozbalí do paměti, jádro provede autodetekci a z něj natáhne všechny potřebné moduly a pak připojí kořenový adresář a další disky.

Výhody: Pro nové zřízení není nutné jádro překompilovat, ale stačí pouze zavést příslušný modul. Systém nevyžaduje restart při přidání či odebrání zařízení. V případě problémů při startu lze provést záchrané operace, aniž by bylo nezbytně nutné použít záchrané medium (cd, floppy,..)

Nevýhody: Existuje možnost infikování jádra nakaženým nebo poškozeným modulem

Práce s moduly

editovat

Velikost jádra a ramdisku je limitována množstvím zkompilovaných modulů. Tzv. generic jádra v distribucích jsou sestavována tak, aby měla alespoň základní funkčnost na většině počítačů. Nevýhodou je, že rekompilace takového jádra trvá dlouho a navíc je většina modulů stejně zbytečná. Také zavádění takového jádra trvá o něco déle, protože se při startu pokouší postupně zavést všechny dostupné moduly. Mohou se objevit i problémy. Třeba tehdy, je-li zaveden dříve modul který je v konfliktu s jiným modulem. Pak nezbývá než upravit pořadí zavedených modulů buď ručně, nebo pomocí konfiguračních souborů (V Debianu soubory v adresáři /etc/modprobe.d a soubor /code/modules)

Modulů je celá řada, navíc jsou postupem času nahrazovány jinými a tak pro začátečníka není snadné vybrat, které zakompilovat do jádra, které ponechat jako modul a které může s klidem vyhodit. Proto by měl posloužit následující přehled alespoň k hrubé orientaci.

Jak zjistím, které moduly jsou zavedené?

editovat

Jaké moduly jsou právě zavedené, lze zjistit pomocí příkazu lsmod. Moduly lze zavést buď příkazem insmod, nebo příkazem modprobe. Naopak odebrat je můžete příkazem rmmod, ovšem pozor. Modul se vám nepodaří odebrat dřív, než odeberete všechny na něm závislé moduly. A to se vám také nemusí podařit, pokud se modul zrovna používá.

Jak zjistím, které moduly jsou k dispozici?

editovat

Seznam modulů, které jsou k dispozici a lze je do právě běžícího jádra zavést, lze zjistit výpisem příkazu modprobe s parametrem -l

Jak zjistím, které moduly jsou zakompilované v jádře?

editovat

Každé nainstalované jádro má obvykle v adresáři /boot také soubor začínající předponou config nebo může být dostupný v /proc/config.gz (pokud jádro bylo s touto vlastností zkompilováno).Je to vlastně konfigurační soubor použitý při kompilaci tohoto jádra a pomocí příkazu grep z něj můžete zjistit, co bylo zakompilováno do jádra (y), co jako modul (m) a co nebylo zakompilováno vůbec. Háček je však v tom, že konfigurační volby s názvem vlastního modulu moc nesouvisí. Ovšem když si při sestavování nového jádra pomocí menuconfig nebo jiného konfiguračního nástroje vypíšete nápovědu,tak zjistíte, o jakou konfigurační volbu se jedná, a tu pak ověřit oproti konfiguračním souboru starého jádra.

Obsahově podobnou stránku zaměřenou na vlastní kompilaci jádra a popis jednotlivých konfiguračních voleb můžete nalézt na adrese http://www.linux-faqs.org/

Popis modulů

editovat

Následující přehled pravděpodobně nikdy nebude úplný a univerzálně platný, protože vývoj hardware a jádra kráčí kupředu mílovými kroky. Proto pokud používá vaše jádro modul, který zde není uveden, a vy jste schopni jej identifikovat, tj. víte k čemu je a které konfigurační volby v jádře ovlivňují jeho kompilaci, tak jej prosím doplňte, děkuji. Pokud mohu prosit, zachovejte prosím pro snazší orientaci abecední pořadí modulů.

Pozor: Některé zavedené moduly mají v názvu podtržíto, ale když si je necháte vyhledat na disku, tak zjistíte že místo podtržítka má modul v názvu pomlčku. Mějte to prosím na paměti při jejich hledání.

Zařízení: napájecí zdroj

Ovladač pro monitorování stavu napájecího zdroje (součást ACPI).

ac97_bus

editovat

Související moduly: ac97_codec

ac97_codec

editovat

Související moduly: snd_via82xx, snd_ac97_bus

adm1021

editovat

af_packet

editovat

agpgart

editovat

amd64_edac_mod

editovat

anydata

editovat

Zařízení: USB

Ovladač pro externí USB CDMA modem AnyDATA ADU-E100H od jádra 2.6.18-rc4 byl nahrazen modulem option

ata_generic

editovat

Související moduly: ath5k

ath_pci

editovat

Modul propreitálních ovladačů Madwifi. Modul pro práci a správné fungování wifi karet Atheros. Při zavádění je možné zadat parametr autocteate, který může nabývat následujících hodnot: [sta|ap|wds|adhoc|ahdemo|monitor]. Tímto parametrem se určí v jakém režimu má wifi karta pracovat. Defaultní volba je sta, kdy karta pracuje jako host. Zjímavou voblou je režim ap, kdy wifi karta vytvoří tzv. access point, ke kterému je možné se připojit jinými zařízeními v režimu host (sta).

Zařízení: disk

Ovladač diskového IDE řadiče ATI IXP.

Zařízení: Wi-Fi

pokračovatel zastaralého modulu bcm43xx

Související moduly: mac80211, ssb

Zařízení: Ethernet

ovladač drátových síťovek Broadcom (BCM4401)

battery

editovat

Zařízení: baterie

Ovladač pro monitorování stavu baterií (notebooky)

bcm43xx

editovat

Zařízení: Wi-Fi

Open source ovladač pro wi-fi karty založené na chipu Broadcom 43xx

Související moduly: bcm43xx, ieee80211softmac, ieee80211

bcm43xx_mac80211

editovat

Zařízení: Wi-Fi

Open source ovladač pro wi-fi karty založené na chipu Broadcom 43xx využívající stack mac80211

Související moduly: mac80211

Související moduly: ssb

binfmt_misc

editovat

bluetooth

editovat

Zařízení: bluetooth

Související moduly: bnep, btusb, l2cap, hidp, rfcomm, sco

bsd_comp

editovat

Související moduly: ppp_generic

btaudio

editovat

btcx_risc

editovat

Zařízení: Analogová televizní karta

Modul je určen pouze pro analogové televizní karty založené na čipsetech bt8x8. Tento čipset obsahuje velká část analogových televizních karet.

Některé parametry:
card=n typ karty
tuner=n typ tj. čip tuneru
radio=0/1 karta bez/s FM rádiem
pll=0/1/2 nastavení pll, 0=bez, 1=28 MHz, 2=35 MHz

Související moduly: btaudio

Související moduly: ssb, ide_cd_mod

cdc_acm

editovat

Zařízení: USB

Ovladač pro externí USB CDMA modem Gtran GPC-6420 s chipsetem Qualcomm.

Zařízení: USB

Open source ovladač pro propojení telefonů na LAN přes USB. Není součástí jádra

Související moduly: rndis_host, usbnet

cfg80211

editovat

Zařízení: Wi-Fi

Související moduly: ath, ath5k, mac80211

compat_ioctl32

editovat

cpufreq_conservative

editovat

Zařízení: CPU

Ovladač pro nastavení politiky procesoru.

Související moduly: powernow_k8, freq_table, cpufreq_stats

cpufreq_ondemand

editovat

Zařízení: CPU

Ovladač pro nastavení politiky procesoru. V tomto případě se nastavuje frekvence procesoru "na požádání", tj. procesor jede s minimální frekvencí a teprve při zvýšení jeho zatížení procesoru, se automaticky zvýší i jeho frekvence.

Související moduly: powernow_k8, freq_table, cpufreq_stats

cpufreq_performance

editovat

Zařízení: CPU

Ovladač pro nastavení politiky procesoru. V tomto případě se nastaví frekvence procesoru na maximální výkon.

Související moduly: powernow_k8, freq_table, cpufreq_stats

cpufreq_powersave

editovat

Zařízení: CPU

Ovladač pro nastavení politiky procesoru. V tomto případě se nastavuje frekvence procesoru na minimum, tj. procesor jede s minimální frekvencí.

Související moduly: powernow_k8, freq_table, cpufreq_stats

cpufreq_stats

editovat

Zařízení: CPU

Modul pro sledování politiky procesoru.

Související moduly: powernow_k8, freq_table

crc_ccitt

editovat

crc_t10dif

editovat

Související moduly: sd_mod

dm_crypt

editovat

dm_mirror

editovat

Související moduly: dm_mod

Související moduly: dm_snapshot, dm_mirror

dm_snapshot

editovat

Související moduly: dm_mod

Zařízení: grafická karta

Open source ovladač pro grafickou kartu ATI Radeon zajišťující přístup k hardwarové 3D akceleraci

Související moduly: radeon

Zařízení: USB modem

Ovladač pro Linux, určený pro DSL modemy s analogovým čipsetem Eagle 8051.

ehci_hcd

editovat

Zařízení: USB

Je modul, který poskytuje rozhraní pro zachycení událostí ze zařízení připojených přes USB - myší, klávesnic, ale mohou jím být také pro zachyceny události generované integrovanými tlačítky (u notebooků), nebo na videokameře připojené přes usb (pokud má pro to ovladač v jádře podporu) viz http://mms.sunsite.dk/doc/x80.html , apod.

Po jeho zavedení se vytvoří v adresáři /dev/input zařízení event[x] pro každé USB zařízení. Události procházející přes toto rozhraní můžete sledovat pomocí utility evtest (součást instalačních balíků lineakd či dvb-utils).

Zařízení: disk

Ovladač pro souborový systém ext2

Související moduly: mbcache

Zařízení: chladící větrák

Ovladač pro monitorování větráku

ff_memless

editovat

Zařízení: grafická karta

Proprietární ovladač pro grafickou kartu ATI Radeon

firmware_class

editovat

Zařízení: disketová jednotka

Ovladač disketové jednotky

freq_table

editovat

Zařízení: CPU

Ovladač zjišťující tabulka dostupných nastavení frekvencí u procesoru.

Související moduly: powernow_k8, freq_table, cpufreq_stats, cpufreq_ondemand

Zařízení: disk

Virtuální disk, umožňující připojovat v zařízení, která nemusí být klasickým souborovým systémem. FTP, webDAV, SSH, NTFS...

gameport

editovat

generic

editovat

gspcav1

editovat

Zařízení: USB

Ovladač pro USB webkamerky s zc0321 chipsetem, (VX1000) od jádra 2.6.11 nahradil dříve používaný modul spca5xx

hci_usb

editovat

Zařízení: periferie

Ovladač pro kombinovaná zařízení (klávesnice a myš přes jeden port)

Související moduly: usbhid, ff_memless

Zařízení: bluetooth

Ovladač pro kombinovaná zařízení (klávesnice a myš přes jeden port) připojená přes bluetooth

Související moduly: l2cap, bluetooth

ide_cd_mod

editovat

ide_core

editovat

Související moduly: ide_cd_mod, ide_pci_generic, atiixp

ide_disk

editovat

ide_generic

editovat

ieee1394

editovat

Zařízení: Fi-Wi

Ovladač pro rozhraní FireWire

Související moduly: bcm43xx,ieee80211softmac

ieee80211

editovat

Zařízení: Wi-Fi

Open source ovladač pro wi-fi karty založené na chipu Broadcom 43xx

Související moduly: bcm43xx, ieee80211softmac, ieee80211_crypt

ieee80211_crypt

editovat

Zařízení: Wi-Fi

Ovladač pro bezdrátovou wi-fi kartu zajišťující kryptovaný přenos

Související moduly: ieee80211

ieee80211softmac

editovat

Zařízení: Wi-Fi

Ovladač pro bezdrátovou wi-fi kartu umožňující změnu její hardwarové MAC adresy

Související moduly: bcm43xx, ieee80211

ip_conntrack

editovat

Související moduly: ipt_MASQUERADE,iptable_nat, ip_nat, nfnetlink

Související moduly: ipt_MASQUERADE,iptable_nat, ip_conntrack, nfnetlink

iptable_mangle

editovat

Související moduly: ip_tables

iptable_nat

editovat

Související moduly: ip_nat, ip_tables, x_tables

ip_tables

editovat

Související moduly: iptable_mangle, iptable_nat, x_tables

ipt_MASQUERADE

editovat

Související moduly: ip_nat, x_tables

ir_common

editovat

i2c_algo_bit

editovat

i2c_amd8111

editovat

i2c_core

editovat

Související moduly: drm, videodev, i2c_piix4

i2c_viapro

editovat

i2c_piix4

editovat

Zařízení: CPU

Ovladač umožňující hardwarové sledování teploty u procesorů amd64. Po jeho zavedení je vytvořeno "zařízení" /sys/class/hwmon/hwmon0 ze kterého by mělo být možné tuto teplotu načítat prostřednictvím aplikace.

Zařízení: virtualizace jádra

Modul kvm (Kernel-based Virtual Machine) je určen pro virtualizaci procesů mezi hostem a hostovaným systémem. V jádře se objevil od verze 2.6.20 Vyžaduje však hardwarovou podporu v procesoru.

Související moduly: kvm-amd

kvm-amd

editovat

Zařízení: virtualizace jádra

Modul kvm-amd je určen pro virtualizaci procesů mezi hostem a hostovaným systémem u procesorů AMD-V.

Související moduly: kvm

Zařízení: virtualizace jádra

Modul aplikaci qemu, který není součástí vanilla jádra a je určen pro virtualizaci procesů mezi hostem a hostovaným systémem.

led_class

editovat

Související moduly: ath5k, sdhci

Související moduly: ata_generic, pata_atiixp, ahci

Související moduly: bridge, stp

Zarizeni: Pripojeni .iso obrazu CD
.iso soubor pripojite prikazem "mount -o loop [soubor.iso] [cilovy adresar]"

Zařízení: bluetooth

Související moduly: rfcomm, hidp, bnep, rfcomm

mac80211

editovat

Zařízení: Wi-Fi

Související moduly: bcm43xx_mac80211, ath5k

mbcache

editovat

Související moduly: r8169

mmc_block

editovat

Zařízení: čtečka paměťových karet

Související moduly: mmc_core

mmc_core

editovat

Zařízení: čtečka paměťových karet

Související moduly: mmc_block, sdhci, tifm_sd

nf_conntrack

editovat

nf_conntrack_ipv4

editovat
editovat

Související moduly: ip_nat, ip_conntrack

Open source ovladač grafických karet NVIDIA. V současné době nepodporuje hardwarovou akceleraci.

Propietární ovladač grafických karet NVIDIA. Umožňuje hardwarovou akceleraci grafických operací - vysoký nárůst výkonu

ohci_hcd

editovat

ohci1394

editovat

Ovladač pro externí USB CDMA modem AnyDATA ADU-E100H nahradil dříve používaný modul anydata

Související moduly: usbserial

Související moduly: video

parport

editovat

Související moduly: parport_pc

parport_pc

editovat

pata_atiixp

editovat

pci_hotplug

editovat

Související moduly: shpchp

Související moduly: ssb

pcmcia_core

editovat

Související moduly: ssb, pcmcia

pcmcia_core

editovat

powernow_k8

editovat

Zařízení: CPU

Ovladač pro technologii powernow u procesorů Athlon64.

Související moduly: processor, freq_table

ppp_async

editovat

Související moduly: ppp_generic

ppp_deflate

editovat

Související moduly: zlib_deflate, ppp_generic

ppp_generic

editovat

Související moduly: ppp_deflate,bsd_comp,ppp_async, slhc

processor

editovat

Zařízení: CPU

Ovladač pro nastavení politiky procesoru. V tomto případě se nastavuje frekvence procesoru "na požádání", tj. procesor jede s minimální frekvencí a teprve při zvýšení jeho zatížení procesoru, se automaticky zvýší i jeho frekvence.

Související moduly: powernow_k8, thermal

psmouse

editovat

Zařízení: grafická karta

Open source ovladač pro grafickou kartu ATI Radeon

Související moduly: drm

reiserfs

editovat

Zařízení: disk

Ovladač pro souborový systém reiserfs

Zařízení: bluetooth

Související moduly: l2cap, bluetooth

Zařízení: bluetooth

Související moduly: cfg80211, bluetooth

Zařízení: USB

Open source ovladač, který vytvoří zařízení pro připojení telefonního přístroje do sítě přes USB kabel. Není součástí jádra

Související moduly: cdc_ether, usbnet

rsrc_nonstatic

editovat

Související moduly: pcmcia_core

rtc_cmos

editovat

rtc_core

editovat

Související moduly: rtc_cmos

rtc_lib

editovat

Související moduly: rtc_core

scsi_mod

editovat

Související moduly: usb_storage, sd_mod, libata

Zařízení: čtečka paměťových karet

Související moduly: mmc_core, sdhci_pci

sdhci_pci

editovat

serio_raw

editovat

Související moduly: ppp_generic

Související moduly: snd_atiixp_modem, snd_atiixp, snd_ac97_codec, snd_hda_codec_realtek, snd_hda_intel, snd_hda_codec, snd_hwdep, snd_mixer_oss, snd_mpu401_uart, snd_pcm, snd_pcm_oss, snd_rawmidi, snd_seq, snd_seq_device, snd_seq_oss, snd_timer, snd_via82xx

snd_ac97_bus

editovat

Související moduly: snd_ac97_codec

snd_ac97_codec

editovat

Související moduly: snd, snd_atiixp, snd_atiixp_modem

snd_atiixp

editovat

Související moduly: snd, snd_ac97_codec

snd_atiixp_modem

editovat

Související moduly: snd, snd_ac97_codec

snd_hda_codec_atihdmi

editovat

snd_hda_codec_realtek

editovat

snd_hda_codec

editovat

Související moduly: snd_hda_codec_atihdmi, snd_hda_codec_realtek, snd_hda_intel

snd_hda_intel

editovat

snd_hwdep

editovat

Související moduly: snd_hda_codec

snd_mixer_oss

editovat

Související moduly: snd_pcm_oss

snd_mpu401_uart

editovat

Související moduly: snd, snd_via82xx

snd_page_alloc

editovat

Související moduly: snd_hda_intel, snd_pcm

snd_pcm

editovat

Související moduly: snd_hda_intel, snd_hda_codec, snd_pcm_oss

snd_pcm_oss

editovat

snd_rawmidi

editovat

Související moduly: snd,

snd_seq

editovat

Související moduly: snd,

snd_seq_device

editovat

Související moduly: snd_seq_dummy, snd_seq_oss, snd_seq_midi, snd_seq, snd_rawmidi

snd_seq_dummy

editovat

snd_seq_midi

editovat

snd_seq_midi_event

editovat

snd_seq_oss

editovat

Související moduly: snd,

snd_timer

editovat

Související moduly: snd_pcm

snd_via82xx

editovat

Související moduly: snd,

soundcore

editovat

Související moduly: snd

spca5xx

editovat

Zařízení: USB

Ovladač pro USB webkamerky s zc0321 chipsetem, (VX1000) od jádra 2.6.11 byl nahrazen modulem gspcav1

Související moduly: ohci_hcd

Související moduly: bridge

Zařízení: síťová karta

Ovladač síťové karty

thermal

editovat

tifm_core

editovat

Zařízení: čtečka paměťových karet

Související moduly: tifm_sd, tifm_7xx1

tifm_sd

editovat

Zařízení: čtečka paměťových karet

Související moduly: mmc_core

tifm_7xx1

editovat

Zařízení: čtečka paměťových karet

Související moduly: tifm_core

tvaudio

editovat

tveeprom

editovat

uhci_hcd

editovat

usb_storage

editovat

Zařízení: USB

Ovladač pro externí bloková zařízení (disky) připojená přes USB port. Např. USB adaptéry pro ide či sata disky, flash disky ("klíčenky"), foťáky v režimu mass_storage, mp3 přehrávače, atd.

usbcore

editovat

Zařízení: USB

Ovladač pro kombinovaná zařízení (klávesnice a myš přes jeden port) připojená přes USB port

Související moduly: hid, ff_memless

Zařízení: USB

Modul pro propojení LAN a USB. Není součástí jádra

Související moduly: cdc_ether, rndis_host

usbserial

editovat

Zařízení: USB

Ovladač vytváří sériové porty pro připojená USB zařízení (externí modemy, čtečky čipových karet, atp.)

Související moduly: option

uvcvideo

editovat

Zařízení: Kamera

Ovladač pro web kamerky

Související moduly: videodev

via_agp

editovat

via_ircc

editovat

via_rhine

editovat

Zařízení: Síťová karta

Ovladač pro síťové karty založené na čipu Via Rhine I až III

via82cxxx

editovat

video_buf

editovat

videodev

editovat

Související moduly: uvcvideo

vmblock

editovat

Zařízení: virtualizace jádra

Modul aplikace VMWware Workstation, který není součástí vanilla jádra a je určen pro virtualizaci procesů mezi hostem a hostovaným systémem.

Zařízení: virtualizace síťové karty

Modul aplikace VMWware Workstation, který není součástí vanilla jádra. Je určen pro virtualizaci síťové karty mezi hostem a hostovaným systémem.

v4l1_compat

editovat

Související moduly: uvcvideo, videodev

v4l2_compat_ioctl32

editovat

Související moduly: videodev

v4l2_common

editovat

x_tables

editovat

Související moduly: ipt_MASQUERADE, xt_mark, iptable_nat, ip_tables

xt_mark

editovat

Související moduly: x_tables

yenta_socket

editovat

Zařízení: PCMCIA

Ovladač pro PCMCIA v noteboocích.

zlib_deflate

editovat

Související moduly: ppp_deflate