Moduly linuxového jádra
Z Wikiknih
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.
[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.
| 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