Moduly linuxového jádra

Z Wikiknih

Přejít na: navigace, hledání

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.

Obsah

[editovat] Nemodulární jádro

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é.

[editovat] Modulární jádro

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

[editovat] Práce s moduly

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.

[editovat] Jak zjistím, které moduly jsou zavedené?

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á.

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

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

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

Každé nainstalované jádro má obvykle v adresáři /boot také soubor začínající předponou config. 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.

[editovat] Odkazy

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/

[editovat] Popis modulů

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í.

[editovat] ac

Zařízení: napájecí zdroj

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

[editovat] ac97_bus

Související moduly: ac97_codec

[editovat] ac97_codec

Související moduly: snd_via82xx, snd_ac97_bus

[editovat] adm1021

[editovat] af_packet

[editovat] agpgart

[editovat] anydata

Zařízení: USB

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

[editovat] ata_generic

[editovat] ath_pci

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).

[editovat] atiixp

Zařízení: disk

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

[editovat] battery

Zařízení: baterie

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

[editovat] bcm43xx

Zařízení: Wi-Fi

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

Související moduly: bcm43xx, ieee80211softmac, ieee80211

[editovat] bcm43xx_mac80211

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

[editovat] b43

Zařízení: Wi-Fi

pokračovatel zastaralého modulu bcm43xx

Související moduly: mac80211, ssb

[editovat] b44

Zařízení: Ethernet

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

Související moduly: ssb

[editovat] binfmt_misc

[editovat] bluetooth

Zařízení: bluetooth

Související moduly: l2cap, hidp

[editovat] button

[editovat] bsd_comp

Související moduly: ppp_generic

[editovat] btaudio

[editovat] btcx_risc

[editovat] bttv

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

[editovat] cdrom

[editovat] cdc_acm

Zařízení: USB

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

[editovat] cdc_ether

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

[editovat] cfg80211

Zařízení: Wi-Fi

Související moduly: mac80211

[editovat] compat_ioctl32

[editovat] cpufreq_conservative

Zařízení: CPU

Ovladač pro nastavení politiky procesoru.

Související moduly: powernow_k8, freq_table, cpufreq_stats

[editovat] cpufreq_ondemand

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

[editovat] cpufreq_performance

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

[editovat] cpufreq_powersave

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

[editovat] cpufreq_stats

Zařízení: CPU

Modul pro sledování politiky procesoru.

Související moduly: powernow_k8, freq_table

[editovat] crc_ccitt

[editovat] dm_mirror

Související moduly: dm_mod

[editovat] dm_mod

Související moduly: dm_snapshot, dm_mirror

[editovat] dm_snapshot

Související moduly: dm_mod

[editovat] drm

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

[editovat] eagle-usb

Zařízení: USB modem

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

[editovat] eeprom

[editovat] ehci_hcd

[editovat] evdev

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).

[editovat] ext2

Zařízení: disk

Ovladač pro souborový systém ext2

Související moduly: mbcache

[editovat] fan

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

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

[editovat] ff_memless

[editovat] fglrx

Zařízení: grafická karta

Proprietární ovladač pro grafickou kartu ATI Radeon

[editovat] firmware_class

[editovat] floppy

Zařízení: disketová jednotka

Ovladač disketové jednotky

[editovat] freq_table

Zařízení: CPU

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

Související moduly: powernow_k8, freq_table

[editovat] fuse

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...

[editovat] gameport

[editovat] generic

[editovat] gspcav1

Zařízení: USB

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

[editovat] hci_usb

[editovat] hid

Zařízení: periferie

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

Související moduly: usbhid, ff_memless

[editovat] hidp

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

[editovat] ide_cd

[editovat] ide_core

[editovat] ide_disk

[editovat] ide_generic

[editovat] ieee1394

Zařízení: Fi-Wi

Ovladač pro rozhraní FireWire

Související moduly: bcm43xx,ieee80211softmac

[editovat] ieee80211

Zařízení: Wi-Fi

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

Související moduly: bcm43xx, ieee80211softmac, ieee80211_crypt

[editovat] ieee80211_crypt

Zařízení: Wi-Fi

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

Související moduly: ieee80211

[editovat] ieee80211softmac

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

[editovat] ip_conntrack

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

[editovat] ip_nat

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

[editovat] iptable_mangle

Související moduly: ip_tables

[editovat] iptable_nat

Související moduly: ip_nat, ip_tables, x_tables

[editovat] ip_tables

Související moduly: iptable_mangle, iptable_nat, x_tables

[editovat] ipt_MASQUERADE

Související moduly: ip_nat, x_tables

[editovat] ipv6

[editovat] ir_common

[editovat] irda

[editovat] i2c_algo_bit

[editovat] i2c_amd8111

[editovat] i2c_core

[editovat] i2c_viapro

[editovat] i2c_piix4

[editovat] joydev

[editovat] k8temp

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.

[editovat] kvm

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

[editovat] kvm-amd

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

[editovat] kqemu

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.

[editovat] libata

[editovat] loop

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

[editovat] l2cap

Zařízení: bluetooth

Související moduly: rfcomm, hidp

[editovat] mac80211

Zařízení: Wi-Fi

Související moduly: bcm43xx_mac80211

[editovat] mbcache

[editovat] mii

[editovat] mmc_block

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

Související moduly: mmc_core

[editovat] mmc_core

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

Související moduly: mmc_block, sdhci, tifm_sd

[editovat] nf_conntrack

[editovat] nf_conntrack_ipv4

[editovat] nf_nat

[editovat] nfnetlink

Související moduly: ip_nat, ip_conntrack

[editovat] nv

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

[editovat] nvidia

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

[editovat] ohci_hcd

[editovat] ohci1394

[editovat] option

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

Související moduly: usbserial

[editovat] parport

[editovat] parport_pc

[editovat] pata_atiixp

[editovat] pci_hotplug

[editovat] pcmcia

[editovat] pcmcia_core

[editovat] pcspkr

[editovat] powernow_k8

Zařízení: CPU

Ovladač pro technologii powernow u procesorů Athlon64.

Související moduly: processor, freq_table

[editovat] ppp_async

Související moduly: ppp_generic

[editovat] ppp_deflate

Související moduly: zlib_deflate, ppp_generic

[editovat] ppp_generic

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

[editovat] processor

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

[editovat] psmouse

[editovat] radeon

Zařízení: grafická karta

Open source ovladač pro grafickou kartu ATI Radeon

Související moduly: drm

[editovat] reiserfs

Zařízení: disk

Ovladač pro souborový systém reiserfs

[editovat] rfcomm

Zařízení: bluetooth

Související moduly: l2cap, bluetooth

[editovat] rndis_host

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

[editovat] rsrc_nonstatic

Související moduly: pcmcia_core

[editovat] rtc

[editovat] sbp2

[editovat] scsi_mod

[editovat] sd_mod

[editovat] sdhci

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

Související moduly: mmc_core

[editovat] serio_raw

[editovat] sg

[editovat] shpchp

[editovat] slhc

Související moduly: ppp_generic

[editovat] snd

Související moduly: snd_atiixp_modem, snd_atiixp, snd_ac97_codec, 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

[editovat] snd_ac97_bus

Související moduly: snd_ac97_codec

[editovat] snd_ac97_codec

Související moduly: snd, snd_atiixp, snd_atiixp_modem

[editovat] snd_atiixp

Související moduly: snd, snd_ac97_codec

[editovat] snd_atiixp_modem

Související moduly: snd, snd_ac97_codec

[editovat] snd_mixer_oss

Související moduly: snd,

[editovat] snd_mpu401_uart

Související moduly: snd, snd_via82xx

[editovat] snd_page_alloc

[editovat] snd_pcm

Související moduly: snd,

[editovat] snd_pcm_oss

[editovat] snd_rawmidi

Související moduly: snd,

[editovat] snd_seq

Související moduly: snd,

[editovat] snd_seq_device

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

[editovat] snd_seq_dummy

[editovat] snd_seq_midi

[editovat] snd_seq_midi_event

[editovat] snd_seq_oss

Související moduly: snd,

[editovat] snd_timer

Související moduly: snd,

[editovat] snd_via82xx

Související moduly: snd,

[editovat] sound

[editovat] soundcore

[editovat] spca5xx

Zařízení: USB

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

[editovat] sr_mod

[editovat] ssb

[editovat] tg3

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

Ovladač síťové karty

[editovat] thermal

[editovat] tifm_core

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

Související moduly: tifm_sd, tifm_7xx1

[editovat] tifm_sd

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

Související moduly: mmc_core

[editovat] tifm_7xx1

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

Související moduly: tifm_core

[editovat] tsdev

[editovat] tuner

[editovat] tvaudio

[editovat] tveeprom

[editovat] uhci_hcd

[editovat] usb_storage

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.

[editovat] usbcore

[editovat] usbhid

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

[editovat] usbnet

Zařízení: USB

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

Související moduly: cdc_ether, rndis_host

[editovat] usbserial

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

[editovat] via_agp

[editovat] via_ircc

[editovat] via_rhine

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

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

[editovat] via82cxxx

[editovat] video_buf

[editovat] videodev

[editovat] vmblock

[editovat] vmmon

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.

[editovat] vmnet

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.

[editovat] v4l1_compat

[editovat] v4l2_common

[editovat] x_tables

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

[editovat] xt_mark

Související moduly: x_tables

[editovat] yenta_socket

Zařízení: PCMCIA

Ovladač pro PCMCIA v noteboocích.

[editovat] zlib_deflate

Související moduly: ppp_deflate