Přeskočit na obsah

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

Nemodulární jádro

[editovat | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

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

Související moduly: ac97_codec

ac97_codec

[editovat | editovat zdroj]

Související moduly: snd_via82xx, snd_ac97_bus

amd64_edac_mod

[editovat | editovat zdroj]

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 | editovat zdroj]

Související moduly: ath5k

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)

Zařízení: baterie

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

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 | editovat zdroj]

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 | editovat zdroj]

Zařízení: bluetooth

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

Související moduly: ppp_generic

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

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

Zařízení: Wi-Fi

Související moduly: ath, ath5k, mac80211

compat_ioctl32

[editovat | editovat zdroj]

cpufreq_conservative

[editovat | editovat zdroj]

Zařízení: CPU

Ovladač pro nastavení politiky procesoru.

Související moduly: powernow_k8, freq_table, cpufreq_stats

cpufreq_ondemand

[editovat | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

Zařízení: CPU

Modul pro sledování politiky procesoru.

Související moduly: powernow_k8, freq_table

crc_t10dif

[editovat | editovat zdroj]

Související moduly: sd_mod

Související moduly: dm_mod

Související moduly: dm_snapshot, dm_mirror

dm_snapshot

[editovat | editovat zdroj]

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.

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 | editovat zdroj]

Zařízení: grafická karta

Proprietární ovladač pro grafickou kartu ATI Radeon

firmware_class

[editovat | editovat zdroj]

Zařízení: disketová jednotka

Ovladač disketové jednotky

freq_table

[editovat | editovat zdroj]

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

Zařízení: USB

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

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 | editovat zdroj]

Související moduly: ide_cd_mod, ide_pci_generic, atiixp

ide_generic

[editovat | editovat zdroj]

Zařízení: Fi-Wi

Ovladač pro rozhraní FireWire

Související moduly: bcm43xx,ieee80211softmac

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 | editovat zdroj]

Zařízení: Wi-Fi

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

Související moduly: ieee80211

ieee80211softmac

[editovat | editovat zdroj]

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 | editovat zdroj]

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

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

iptable_mangle

[editovat | editovat zdroj]

Související moduly: ip_tables

iptable_nat

[editovat | editovat zdroj]

Související moduly: ip_nat, ip_tables, x_tables

Související moduly: iptable_mangle, iptable_nat, x_tables

ipt_MASQUERADE

[editovat | editovat zdroj]

Související moduly: ip_nat, x_tables

i2c_algo_bit

[editovat | editovat zdroj]

i2c_amd8111

[editovat | editovat zdroj]

Související moduly: drm, videodev, i2c_piix4

i2c_viapro

[editovat | editovat zdroj]

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

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.

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

Zařízení: Wi-Fi

Související moduly: bcm43xx_mac80211, ath5k

Související moduly: r8169

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

Související moduly: mmc_core

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

Související moduly: mmc_block, sdhci, tifm_sd

nf_conntrack

[editovat | editovat zdroj]

nf_conntrack_ipv4

[editovat | editovat zdroj]

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

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

Související moduly: usbserial

Související moduly: video

Související moduly: parport_pc

parport_pc

[editovat | editovat zdroj]

pata_atiixp

[editovat | editovat zdroj]

pci_hotplug

[editovat | editovat zdroj]

Související moduly: shpchp

Související moduly: ssb

pcmcia_core

[editovat | editovat zdroj]

Související moduly: ssb, pcmcia

pcmcia_core

[editovat | editovat zdroj]

powernow_k8

[editovat | editovat zdroj]

Zařízení: CPU

Ovladač pro technologii powernow u procesorů Athlon64.

Související moduly: processor, freq_table

Související moduly: ppp_generic

ppp_deflate

[editovat | editovat zdroj]

Související moduly: zlib_deflate, ppp_generic

ppp_generic

[editovat | editovat zdroj]

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

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

Zařízení: grafická karta

Open source ovladač pro grafickou kartu ATI Radeon

Související moduly: drm

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 | editovat zdroj]

Související moduly: pcmcia_core

Související moduly: rtc_cmos

Související moduly: rtc_core

Související moduly: usb_storage, sd_mod, libata

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

Související moduly: mmc_core, sdhci_pci

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 | editovat zdroj]

Související moduly: snd_ac97_codec

snd_ac97_codec

[editovat | editovat zdroj]

Související moduly: snd, snd_atiixp, snd_atiixp_modem

snd_atiixp

[editovat | editovat zdroj]

Související moduly: snd, snd_ac97_codec

snd_atiixp_modem

[editovat | editovat zdroj]

Související moduly: snd, snd_ac97_codec

snd_hda_codec_atihdmi

[editovat | editovat zdroj]

snd_hda_codec_realtek

[editovat | editovat zdroj]

snd_hda_codec

[editovat | editovat zdroj]

Související moduly: snd_hda_codec_atihdmi, snd_hda_codec_realtek, snd_hda_intel

snd_hda_intel

[editovat | editovat zdroj]

Související moduly: snd_hda_codec

snd_mixer_oss

[editovat | editovat zdroj]

Související moduly: snd_pcm_oss

snd_mpu401_uart

[editovat | editovat zdroj]

Související moduly: snd, snd_via82xx

snd_page_alloc

[editovat | editovat zdroj]

Související moduly: snd_hda_intel, snd_pcm

Související moduly: snd_hda_intel, snd_hda_codec, snd_pcm_oss

snd_pcm_oss

[editovat | editovat zdroj]

snd_rawmidi

[editovat | editovat zdroj]

Související moduly: snd,

Související moduly: snd,

snd_seq_device

[editovat | editovat zdroj]

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

snd_seq_dummy

[editovat | editovat zdroj]

snd_seq_midi

[editovat | editovat zdroj]

snd_seq_midi_event

[editovat | editovat zdroj]

snd_seq_oss

[editovat | editovat zdroj]

Související moduly: snd,

Související moduly: snd_pcm

snd_via82xx

[editovat | editovat zdroj]

Související moduly: snd,

Související moduly: snd

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

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

Související moduly: tifm_sd, tifm_7xx1

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

Související moduly: mmc_core

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

Související moduly: tifm_core

usb_storage

[editovat | editovat zdroj]

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.

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

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

Zařízení: Kamera

Ovladač pro web kamerky

Související moduly: videodev

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

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

Související moduly: uvcvideo

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 | editovat zdroj]

Související moduly: uvcvideo, videodev

v4l2_compat_ioctl32

[editovat | editovat zdroj]

Související moduly: videodev

v4l2_common

[editovat | editovat zdroj]

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

Související moduly: x_tables

yenta_socket

[editovat | editovat zdroj]

Zařízení: PCMCIA

Ovladač pro PCMCIA v noteboocích.

zlib_deflate

[editovat | editovat zdroj]

Související moduly: ppp_deflate