Mandriva Linux a hardware

ikona-hardware1Tato stránka by měla pomoci všem uživatelům, kteří mají problémy s funkčností svého hardwaru  v Mandriva Linuxu, hledají nějaké dodatečné informace nebo si jen chtějí vybrat do svého počítače bezproblémový hardware. Zaměřujeme se především na běžný (domácí) hardware platformy Intel x86.  Upozornění: stránka je z velké části neaktuální a je zachována pouze z archivních důvodů!

Než se začtete dále, podívejte se prosím do databáze známých problémů – Errata, zda-li v ní není vyřešen zrovna ten Váš (originály v angličtině a záznamy pro starší verze Mandriva Linuxu najdete na zde).

Podpora hardware v Linuxu (obecně) je dnes poměrně dobrá. Velká většina současných zařízení je dnes detekována bez problémů a ovladače k nim jsou součástí standardní distribuce. Hledáte-li informace o podpoře konkrétního výrobku, se můžete podívat do databáze podporovaného hardwaru pro Mandriva Linux. Tam najdete seznam hardwaru podporovaný přímo určitou verzí distribuce. Neznamená to však, že hardware, který zde není uveden není možno zprovoznit.

Pokud nemáte s Linuxem zkušenosti, může vás zajímat, co vlastně znamená hardware podporovaný distribucí. Zjednodušeně řečeno, to, jaká zařízení jsou nebo nejsou podporována je dáno přítomností ovladače v jádře systému. Jde o zvukové karty, síťové karty, tunery, modemy, myši apod. Výjimku tvoří např. grafické karty, kde je nutná podpora X.org (graf. subsystém Linuxu) a některá další zařízení. Podrobnosti hledejte v jednotlivých sekcích.

Aby mohli vývojáři Linuxu přidat podporu zařízení (naprogramovat ovladač), musí mít k dispozici jeho specifikace. Někteří výrobci neradi specifikace uvolňují, ti lepší z nich v takovém případě vydávají vlastní ovladače. Používání takových ovladačů ale nemusí být úplně bez problémů – bývají např. vázána na standardní jádra distribucí. Pokud máte na svém Linuxu jiné jádro než než standardní z distribuce, ovladač nemusí fungovat. Firmy s lepší podporou Linuxu mají na stránkách i balíčky TGZ nebo SRC.RPM, které umožní kompilaci i s jiným jádrem (i když obvykle neobsahují jen zdrojové kódy). Firemní ovladače si můžete zkusit v případech, kdy vyžadujete funkce (nastavení), které standardní ovladače neposkytují. Zajímá-li Vás podpora Linuxu výrobcem zařízení, podívejte se na jeho webové stránky. Čím více informací o Linuxu najdete (ovladače, odkazy, HOWTO dokumenty, konference) tím lépe.

V případě, že Váš hardware nebyl při instalaci rozeznán nebo nepracuje správně, mohou Vám pomoci mohou aktualizované balíčky (jádro, X.org), ovladače od výrobce nebo ovladače tzv. třetích stran. Jedná se především o zařízení, která nebyla v době uvedení distribuce na trhu. Pokud jste v takové situaci, vyberte si druh a čtete dále. Pokud máte problém s identifikací svého hardware, podívejte se sem. Najdete-li na stránce nefunkční odkaz nebo máte-li nějaké dotazy/připomínky, dejte nám vědět.

POZN: občas se stává – a je to záležitost hlavně levných výrobců – že určité díly (kombinace hardware) nespolupracují dobře. Pokud na takovouto hardwarovou nekompatibilitu narazíte, nepomohou Vám žádné, zde uvedené rady a postupy. Pomůže pouze výměna minimálně jednoho z nekompatibilních dílů za jiný.

Čipové sady (základní desky)

Základní deska a na ní obsažená čipová sada je dnes základním kamenem každého PC. Pokud narazíte na problém s čipovou sadou, může se projevit několika způsoby. Dále bude řeč pouze o základních částech čipové sady, pokud máte problém s nějakým integrovaným zařízením, podívejte se do příslušné sekce dále – jde hlavně o grafické karty a zvukové karty.

Problémy s řadiči disků nejsou příliš běžné a mohou Vás potkat u velmi nových IDE řadičů. Pokud si jádro s řadičem neporozumí, nastaví u IDE zařízení starší kompatibilní módy. Vše sice funguje ale může se stát, že IDE zařízení nepojedou “naplno” – hlavně jde o pevné disky. Práce s diskem se bude zdát pomalá např při přesouvání velkého množství dat, nestíhá vypalování apod. Z výpisů jádra můžete ledacos zjistit, pomocí příkazu dmesg |grep hd[a-z] získáte podobný výpis (v originále jen na jednom řádku):

 ... ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:DMA, hdb:pio
     ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:DMA
     hda: ST340016A, ATA DISK drive
     hdc: TOSHIBA DVD-ROM SD-M1502, ATAPI CD/DVD-ROM drive
     hdd: Hewlett-Packard CD-Writer Plus 8000, ATAPI CD/DVD-ROM drive
     hda: 78165360 sectors (40021 MB) w/2048KiB Cache, CHS=4865/255/63, UDMA(100)  ...

Z tohoto výpisu je vidět, že počítači je jako primary master (hda) disk Seagate, který je na kanále sám, secondary master (hdc) je DVD Toshiba a secondary slave (hdd) mám vypalovačku. Obě CD mechaniky jedou v DMA módu, disk pak v UltraDMA 100. Spoustu informací o IDE zařízeních lze získat pomocí příkazu hdparm -I jméno_zařízení (např. /dev/hda – na Linuxu jsou všechna zařízení v adresáři /dev).

Pokud se Vám DMA módy automaticky nezapínají přestože je podpora řadiče v jádře a disk je také podporuje, podívejte se do souboru /etc/sysconfig/harddisks a odkomentujte řádek USE_DMA=1. To by mělo zabrat a vynutit DMA při každém startu systému, musí však být nainstalován program hdparm. Můžete experimentovat i s dalšími parametry, které mají vliv na výkon disku. Pozor, pokud se po zapnutí DMA začnou disky chovat divně, radši jej zase urychleně vypněte a zkuste novější verzi jádra!

Pomocí hdparmu lze doslova vyždímat z disků maximum. Ale pozor, při hrátkách s hdparmem můžete zároveň lehce přijít o data (např. spatně nastaveným režimem UltraDMA)!!! Pokud chcete s disky experimentovat, doporučujeme k přečtení manuálové stránky příkazu hdparm.

Pokud nezabral žádný z postupů uvedených výše, bude potřeba nové jádro. Nejdříve zkuste RPM balíček s jádrem z aktualizací k Vaší verzi distribuce. Pokud to nezabere bude potřeba stáhnout zdrojové kódy nejnovější verze a jádro zkompilovat – najdete jej např. na ftp.fi.muni.cz.

Problém s ovladačem AGP, konkrétně s jaderným modulem agpgart. Může se stát, že budete mít problémy s hardwarovou akcelerací grafické karty v X.org (DRI) přestože ovladače X.org jsou v pořádku. To se projeví např. tak, že graficky náročnější programy (vetšinou hry) běží neúnosně pomalu. Jak na tom jste zjistíte jednoduše pomocí dmesg | grep agpgart. Pokud uvidíte podobný výpis jako je tento:

 agpgart: Maximum main memory to use for agp memory: 690M
 agpgart: Unsupported Via chipset (device id: 3099),
 you might want to try agp_try_unsupported=1.
agpgart: no supported devices found.

pak je vše jasné. Přidejte (jako root) do souboru /etc/modules.conf řádek

 options agpgart agp_try_unsupported=1

Poté by již výpis jádra mohl vypadat například takto:

 agpgart: Detected Intel i815 chipset  agpgart: AGP aperture is 64M @ 0xe0000000

Pokud problém přetrvává (vyjímečně), bude třeba vyzkoušet nové jádro. 

Grafické karty

Tato kapitola se týká pouze grafického výstupu, který má v Linuxu zajišťuje XWindow system a konkrétně jeho implementace X.org. V případě použití hardwarové akcelerace (DRI) spolupracují X.org společně s jádrem – viz. agpgart v předchozí kapitole. Aktuální verze X.org je 7.1. Chcete-li vědět, jak je na tom Vaše grafická karta, hledejte na stránce X.org Driver Status Document.

Pokud chcete provozovat Linux v textovém režimu například jako server, pak samozřejmě žádný ovladač ke grafické kartě potřebovat nebudete. Nehledě na fakt, že na serveru nemají XFree co pohledávat.

Firemní ovladače ke grafickým kartám můžete zkusit v případech, kdy máme nepodporovanou kartu, potřebujete větší výkon nebo speciální funkce nepodporované v XFree86. Pozor však na podporované verze XFree86! Firmy s lepší podporou Linuxu mají na stránkách i balíčky TGZ nebo SRC.RPM, které umožní kompilaci s jiným jádrem (i když obvykle neobsahují jen zdrojové kódy).

Co můžeme potkat:

  • Ati – nevyrábí vlastní ovladače pro Linux, pouze podporuje vývojáře XFree. Stanovisko ATI společně s FAQ a odkazy najdete zde. Máte-li kartu s čipem ATI ale od jiného výrobce (např Hercules, Jetway, Club3D) pak je rozhodující použitá verze čipu.
  • Intel – podpora grafických karet Intelu je v XFree86 velmi dobrá. Dnes potkáte prakticky jen grafiky integrované na čipsetech i810, i815, pro které nejsou potřeba speciální nastavení nebo jiné ovladače. Intel má na stránkách support.intel.com ovladače pro starší (dnes již ne příliš používané) verze XFree.
  • Kyro – nejsou v našich krajích příliš běžné. Karty nejsou v současné době v XFree 4.2.0 podporovány vůbec, firemní ovladače najdete zde.
  • Matrox – je firma která začala vyvíjet ovladače pro Linux jako první. Podpora v XFree86 je dobrá ale bez hardwarové akcelerace. Firemní ovladače s akcelerací najdete zde. Pro novou kartu Matroxu s označením Parhelia budou údajně k dispozici i firemní ovladače pro Linux.
  • Nvidia – má podporu XFree poměrně dobrou. Firma vyvíjí i vlastní ovladače s podporou DRI (dokonce i vlastní modul do jádra místo agpgart). Firemní ovladače najdete zde a podporují i nejnovější čipy NVidie.
  • S3 – firma už nové čipy nevyvíjí, karty s XFree86 fungují bez problémů. Nějaké firemní ovladače jsou k dispozici na webu S3.
  • SiS – vyrábí především čipsety s integrovanými grafickými kartami (tzv. kancelářská řešení). Většina karet je podporována přímo v XFree86, firma vlastní ovladače nevyvíjí. Stanovisko firmy společně s odkazy najdete zde. O ovladačích a podpoře nového pro nový čip Xabre zatím nebyly uvolněny žádné informace.
  • Via – má ve svých čipových sadách integrovány grafické karty jiných výrobců – např. Trident (čipové sady Via KLE/PLE) nebo S3 Savage (čipové sady ProSavage). Jejich podpora v XFree je dobrá. VIA HOWTO dokumenty najdete na stránkách VIAARENA.

Pokud Vaše karta není v distribuci podporována a výrobce nedodává firemní ovladače, nezbývá než zkusit novější verzi X.org. Nainstalovanou verzi X.org zjistíte příkazem rpm -qa |grep xorg.

Pro Linux existují i komerční Xservery (část, která má na starosti zobrazování) s podporou OpenGL:

  • Accelerated X – rychlá implementace Xserveru firmy XiG.
  • Metro-X – další implementace od Metro Link Inc. (dobrá podpora dotykových obrazovek a speciálních vstupních zařízení).

Zvukové karty

Podporu zvukových karet má v Linuxu na starosti jádro, podporována je většina běžných zvukových karet. Pokud narazíte na problémy (karta není detekována, přehrávaný zvuk je špatné kvality apod.), může pomoci aktualizace jádra. Pokud nové jádro situaci nezmění, pomůže Vám téměř určitě projekt ALSA (Advanced Linux Sound Architecture).

ALSA přináší úplně nový přístup ke zvukovým kartám a měla by být integrována do jádra řady 2.5. Nyní jde stále ještě o samostatnou část. Zajímají-li Vás podporované karty, prohlédněte si ALSA Soundcard Matrix. Postup zprovoznění najdete např. v ALSA-Mini-HOWTO (nejdůležitější jsou kapitoly 4 a 5). Projekt se velmi rychle vyvíjí a podpora nových karet je obvykle otázkou několika málo dní. V novějších verzích Mandrake najdete zkompilovanou ALSU v adresáři /lib/modules/verze_jadra/alsa/ (verzi jádra získáte pomocí uname -r).

Výrobci zvukových karet:

  • Ali – má intergrovány zvukové karty na svých čipsetech. Mají dobrou podporu v ALSA ovladačích, firma vlastní ovladače nevyvíjí. Na svých stránkách má sekci o Linuxu – Linux FAQ.
  • CMI – jsou poměrně dobře podporovány jádrem. Firma má na stránkách i vlastní ovladače pro Linux, najdete je zde.
  • Creative – spolupracuje s vývojáři, ovladače většiny karet jsou přímo v jádře. Velmi podrobný článek o zprovoznění Live! se všemu vymoženostmi najdete na ABCLinuxu.
    Karta Audigy je podporována v nových ALSA ovladačích.
  • Crystal Semiconductor
  • ESS – se dnes již moc nevidí, podpora starších čipů je dobrá.
  • Intel – integrované zvukové karty jsou podporovány jádrem. Pokud se setkáte s tím, že zvuk je přehráván rychleji než měl být, použijte nové jádro nebo ALSA ovladače.
  • SiS – taktéž zvukové karty integrované na čipsetech. Vlastní ovladače nevyrábí a s některými, zvláště pak novými zvukovými čipy bývají problémy (neuvolněné specifikace čipů). Na zprovoznění nové SiS zvukovky budete téměř jistě potřebovat ALSU. Stanovisko firmy společně s odkazy najdete zde.
  • Via – vyrábí zvukové karty integrované na vlastních čipsetech. Podpora jádra je dobrá, firma nabízí i vlastní (binární) ovladače pro “největší” distribuce na stránkách VIAARENA.

Pro Linux existují i komerční ovladače zvukových karet Open Sound System.

Modemy

V této části najdete informace zatím jen ke klasickým modemům. Tyto modemy dnes můžeme podle způsobu konstrukce rozdělit na dva typy, modemy hardwarové a softwarové.

Hardwarový modem je plnohodnotné zařízení schopné MODulovat/DEModulovat signál z telefonní linky. Bývají obvykle v externím provedení a počítači se připojují přes COM port nebo nověji přes USB rozhraní (ne všechny USB modemy jsou však hardwarové!). Starší typu interních modemů také bývaly hardwarové (vetšinou na ISA sběrnici), dnes jsou spíš výjimkou. Dá se říci, ze hardwarový modem je možno bez problémů zprovoznit pod jakýmkoliv operačním systémem, protože je schopen se dorozumět pomocí standardních AT příkazů (slouží k ovládání modemu).

Softwarový modem je modem, který disponuje pouze nezbytnými hardwarovými obvody a ostatní práce je přenechána na ovladači. Ke zprovoznění takového modemu potřebujete software – ovladač, který “dodělává” práci chybějícího hardware a tady je jádro problému. Firmy vyrábějící čipové sady těchto modemů nebyly donedávna moc ochotné ke komunikaci s vývojáři a podpora takových modemů byla velmi slabá. Softwarový modem bez ovladače nerozumí AT příkazům a není s ním tudíž žádná domluva! Téměř všechny typy dnes prodávaných interních modemů jsou modemy softwarové a tato neřest se začíná rozmáhat i u externích USB modemů. Tyto softwarové modemy patří k nejproblémovějším zařízením pod Linuxem.

Situace je dnes již lepší, k některým výrobkům dodávají výrobci i vlastní ovladače, přesto se může stát, že Váš modem zprovoznit nepůjde (opět známý problém s binárními ovladači). Chcete-li si dnes zakoupit hardwarový modem, pak je jistota jen externí modem s připojením na COM port, u všech ostatních typů můžete narazit na softwarové kusy. Pokud modem nabízí připojení jak na USB tak na COM (vedou z něj 2 “dráty”), pak je také hardwarový. Pokud Vás zajímá podpora modemů na USB sběrnici, podívejte se na stránku Linux USB Project.

K tomu abyste mohli zprovoznit softwarový modem, musíte znát jeho čipset (pokud máte problémy s identifikací podívejte se sem). Pak Vám mohou pomoci následující odkazy na ovladače různých čipových sad:

  • Conexant/Rockwell – oficiální ovladače jsou k dispozici (jako TGZ, RPm nebo SRC.RPM) na stránce Conexantu. Jiné ovladače najdete tady, fungují i ovladače od Olitecu (pouze binární, i pro jádra 2.2.x).
  • ESS – binární ovladače najdete například tady. Jde však o verzi pro jádra 2.2.12, dnes jsou již téměř k ničemu. Na stránce výrobce není vyjádření k Linuxu žádné (kdysi bylo :).
  • Lucent – ovladače (včetně zdrojového kódu) třetí strany najdete na stránce LTModems for Linux.
  • Motorola – binární ovladače výrobce jsou na stránkách Motoroly, jsou však vázány na jádro RedHat 7.1 a vývoj byl již zastaven.
  • PCTel – ovladače třetí strany (se zdrojovým kódem) zde. Fungují i s jádry 2.4.x.

V případě, že se Vám nepodaří softwarový modem zprovoznit a máte nějaký problém, můžete vyzkoušet ještě tyto zdroje informací:

  • Linmodems.org – obecné informace o softwarových modemech pod Linuxem, emailová konference (má archív na webu).
  • Wimodem are not modems – další stránka věnovaná winmodemům, včetně přehledu o ovladačích k jednotlivým čipsetům, technických informací apod.
  • Ovladače pro nejrůznější modemy a Linuxové distribuce.

Pokud se Váš modem nechce připojovat, přestože je veškeré nastavení v pořádku, a hlásí něco jako “No dialtone” pak je problém v jeho nastavení. Modem totiž očekává oznamovací tón ale jiný než u nás (ČR). Pokud jej usměrníme AT příkazem ATX3 pak bude vše v pořádku – tento příkaz stačí přidat do inicializačních skriptů (v /etc) nebo jej nastavit jako inicializační řetězec (v kppp apod.)

Může se Vám stát, že některý program komunikující s modemem vyžaduje zařízení /dev/modem a po startu skončí s chybou, že takové zařízení neexistuje. Zařízení /dev/modem ve skutečnosti neexistuje a vždy je symbolickým linkem na zařízení jiné, na kterém lze modem najít. Pokud máte modem softwarový, postará se většinou o vytvoření odkazu instalace ovladače. Pokud máte modem na COM port, lze vytvoření odkazu zařídit pomocí příkazu ln -s /dev/ttyS0 /dev/modem. Tento příkaz vytvoří správný odkaz v případě, že je modem na portu COM1, pokud chcete odkaz na COM2, použijte jako zařízení /dev/ttyS1 (jsou vzestupně očíslována). Pokud máte problémy s modemem na USB, podívejte se do USB Guide. Kam odkaz z /dev/modem směřuje se můžete podívat příkazem ls -l /dev/modem.

Potřebujete-li terminál na zkoušení AT příkazů, můžete použít program program minicom ze stejnojmenného balíčku (potřebuje /dev/modem) nebo terminál v grafických programech pro nastavení připojení (kppp).

Jak rozpoznat hardware

Někdy není tak jednoduché zjistit, jaké zařízení vlastně máme. Pod spoustou exotických a lákavých názvů se může skrývat jedno a to samé zařízení. Dobrým příkladem jsou softwarové modemy, kde existuje pár výrobců čipových sad a nespočetně mnoho výrobců těchto modemů. A právě čipová sada je to nejdůležitější, rozhoduje o tom, kdo vyrobil základ karty a kde na něj shánět ovladače. Samozřejmě nemůžeme tvrdit, že všechny tyto výrobky jsou pak stejné – karty od kvalitního výrobce se budou určitě lišit od levných noname i když mají stejný základ (čip). Postup zprovoznění bude ale stejný.

Informace o použité čipové sadě a ostatních detailech by měly být v manuálu. Pokud nejsou, musíme si pomoci sami. Budeme se zabývat pouze Plug and Play zařízeními, jiná dnes už moc nepotkáte. Identifikaci můžeme zkusit provést několika způsoby.

Nejjednodušší metodu, pokud máme hardware před sebou, je podívat se. Zaměříme se většinou na největší čip, který by mohl vypadat např. takto:

conexant.png

Z čipu vidíme, že výrobcem je Conexant  čipset. Conexant opravdu vyrábí čipsety k interním modemům (Conexant HCF/HFS) a jejich ovladače najdete na webu výrobce.

V určitých případech se samozřejmě podívat nemůžeme – na čipu je chladič (nesundávat!), počítač je zapečetěný apod. Pak si musíme pomoci jinak. Spousta věcí se dá najít v adresáři /proc – pomocí příkazu cat /proc/pci si můžete vypsat seznam toho, co jádro na PCI sběrnici našlo.

My však raději použijeme výpis programu lspci z balíčku pciutils. Pomocí lspci zobrazíme přehledně formátový výpis všeho na PCI sběrnici. Uvidět můžeme něco takového (výstupy lspci jsou v originále na jeden řádek):

 ... 1:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 04) ...
     02:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 04)
     02:0e.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)  ...

Z výpisu je vidět, že mám v počítači (mimo jiné) zvukovou kartu Soundlaster Live!, síťovou kartu s čipem Realtek a mám také grafickou kartu Matrox G400. Tu použiji v dalším textu jako příklad.

Pozor, to že se správně zobrazí popis karty (a čipu) ještě nemusí znamenat, že s tímto hardwarem umí Linux pracovat! Každý typ zařízení se na sběrnici hlásí několika unikátními čísly. Linuxové distribuce mají v souboru pci.ids, který je součástí balíčku pciutils, uloženu databázi těchto čísel a k nim přiřazen popis hardware (např. “Matrox Graphics, Inc. MGA G400 AGP”). Pokud mají v databázi i Váš hardware, pak program lspci jen správně zobrazí jeho jméno.

Pokud nám lspci vypíše jméno výrobce a typ zařízení, pak je hotovo a víme kde máme hledat ovladače a k čemu. Někdy se však může stát, pokud je databáze starší než to zařízení, že se nezobrazí typ zařízení. U předchozího výpisu (k Matroxu) by to vypadalo asi takto:

 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 (rev 04)

V horším případe se nezobrazí ani výrobce (opět tentýž Matrox):

 VGA compatible controller: Unknown device 102b:0525 (rev 04)

V takových případech je důležité zjistit, co znamenají čísla 102b a 0525. Číslo 102b je tzv. VendorID – číslo výrobce a 0525 je DeviceID – číslo zařízení. To jsou čísla, o kterých jsem mluvil v předchozím odstavci a podle nich lze jednoznačně určit výrobce čipu a tím zjistit, kde a pro co hledat ovladač. Protože Vaše databáze je staršího data a tato čísla nezná, musíte si buď upgradovat balíček pciutils (a s ním i databázi hardware) nebo se podívat na internetu. Hledat můžete např. na stránkách:

Hledat můžete obvykle podle jména výrobce nebo čísel zařízení. Až najdete výrobce a typ čipu, máte opět vyhráno. Máte-li zařízení PNP na sběrnici ISA, lze použít k výpisu všech zařízení na sběrnici program pnpdump z balíčku isapnptools (zde najdete jejich FAQ).