====== Jak rozpoznávat hardware a ovladače ====== **V Linuxu a především ve Fedoře** **__ZLATÉ PRAVIDLO HARDWARU PRO LINUX__**\\ V první řadě je potřeba si uvědomit, že podpora hardwaru od výrobců pro Linux není všeobecně běžná. Proto již **před koupí hardwaru je potřeba se o podporu v Linuxu zajímat** a ověřit si, že hardware v Linuxu funguje. Uživatelský katalog HW je např. na [[http://www.abclinuxu.cz/hardware|ABCLinuxu]]. Pokud se vám dostane do rukou HW o kterém nevíte, jak to s podporou vypadá, první a nejlepší je pokusit se zeptat [[http://linux.google.com/|Googlu]]. Přesto se může stát, že pod tímto hledáním nic užitečného nenajdete. Často je to jen tím, že Linux podporuje "vnitřnosti" HW, ale nezná ho pod obchodním jménem toho kterého výrobce. **Každé HW zařízení má v sobě nějaký "chipset".** Ten tvoří základ celého zařízení. Chipsetů je zpravidla omezené množství a různí výrobci prodávají často vnitřně stejné zařízení jen s jiným jménem. ===== PCI zařízení ===== V případě, že **hledáme podporu** PCI zařízení stačí zařízení přidat do počítače a po nastartování Linuxu se podívat do výpisu příkazu lspci 00:00.0 Host bridge: Intel Corp. 430HX - 82439HX TXC [Triton II] (rev 03) 00:07.0 ISA bridge: Intel Corp. 82371SB PIIX3 ISA [Natoma/Triton II] (rev 01) 00:07.1 IDE interface: Intel Corp. 82371SB PIIX3 IDE [Natoma/Triton II] 00:0a.0 Network controller: Harris Semiconductor: Unknown device 3873 (rev 01) **00:0b.0 Ethernet controller: Unknown device 168c:0013 (rev 01)** 00:0c.0 Network controller: Harris Semiconductor: Unknown device 3873 (rev 01) V seznamu jsem označil PCI zařízení které Linux nerozpoznal. Co je podstatné, vypsal jeho PCI ID: 168c:0013. Hledáním tohoto čísla už můžeme získat přesnější představu o jaký HW se jedná. Pokud Linux zařízení zná výpis bude vypadat pro toto zařízení zhruba následovně: 00:0b.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01) Např. PCI wifi karta s tímto chipsetem se ovšem prodává pod minimálně třemi obchodními označeními: Sweex 54/104Mbps wireless PCCARD11A+B+G NEC WL54AG WNC CB9-EXT CardBus 802.11a/b/g ==== Pokud Linux zařízení zná ==== neměl by již být problém nalézt pro toto zařízení ovladač. Je ovšem potřeba hledat identifikaci z výstupu příkazu ''lspci'', nikoli obchodní označení. === Jestliže existuje ovladač přímo v Linuxovém kernelu === a není automaticky zaveden, máme vyhráno a stačí jej zavést příkazem modprobe jmeno_ovladace === Jestliže neexistuje ovladač přímo v Linuxovém kernelu === ovšem obecně ovladač existuje máme dvě možnosti - Pokusit se najít, zda někdo ovladač již nepřipravil pro Fedoru - Zkompilovat ovladač pro náš běžící systém Zda je **ovladač pro Fedoru** dostupný zjistíme např. na [[http://rpm.pbone.net/]] zadáním jména ovladače, který hledáme. Pro PCI ID 168c:0013 je to ''madwifi''. Nalezený balíček pak buď stáhneme a nainstaluje nebo zkusíme použít yum search madwifi a podle výsledku pak např. yum install madwifi **Kompilace ovladače** - V první řadě se ujistěte, že máte nainstalovány vývojové nástroje - kompilátor a pomocné utilty (Sekce Development Tools (Vývojové nástroje) v Add/Remove programs (Přidat/Odebrat programy). - pravděpodobně budete potřebovat i hlavičkové soubory kernelu (jádra) - kernel-devel - rozblate archiv ovladače, pokud je tam soubor configure spustte ./configure jinak pokračujete make make install TBD ---- Po použití ''modprobe'' by se měl na konci výstupu příkazu ''dmesg'' objevit výpis kernelu oznamující, že kernel si s hardwarem rozumí. Např.: ath_hal: 0.9.14.9 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413) ath_pci: 0.9.6.0 (EXPERIMENTAL) ath0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps ath0: turbo rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps ath0: 802.11 address: 00:22:33:44:55:66 ath0: Atheros 5212: mem=0x10800000, irq=9 ==== Neznámá zařízení ==== To, že Linux o zařízení prohlašuje, že je neznámé (''Unknown device''), ještě neznamená, že musíme hodit flintu do žita. Je dost dobře možné, že ovladač existuje, jen kernel o něm vůbec neví. Pak je záhodno vyzkoušet postup **Jestliže neexistuje ovladač přímo v Linuxovém kernelu**.