Bohužel stále platí, že ne všechen hardware je Linuxem podporován. Problémy mohou nastat zejména s grafickými a zvukovými kartami, televizními tunery, zařízeními Wi-Fi, modemy1), tiskárnami a skenery. Důvod těchto problémů není na straně Linuxu, ale na straně výrobců, kteří mnohdy linuxovou komunitu „velkoryse“ přehlížejí. Nejenže sami nevydají potřebné ovladače, ale navíc odmítají dát k dispozici technickou specifikaci výrobku, na základě které by mohly být ovladače vyvinuty. Jestliže se tedy chystáte nakoupit nový hardware, „zagooglujte“ vždy předem na Internetu2) - vyhnete se tak nepříjemným překvapením. V případě, že pro Vámi vyhlédnutý hardware neexistují ovladače pro Linux, neváhejte o tom napsat výrobci - možná se sám nad sebou zamyslí3).
V moderních počítačích lze zjistit identifikaci jejich hardwarových komponent bez toho, abyste je museli otvírat a hledat popisky na desce nebo na jednotlivých integrovaných obvodech.
Velikost dostupné paměti získáme pomocí příkazu free
:
$ free total used free shared buffers cached Mem: 765656 143684 621972 0 56444 32496 -/+ buffers/cache: 54744 710912 Swap: 2096472 0 2096472
Ve výše uvedeném příkladu můžeme z prvního řádku výstupu vyčíst, že počítač má k dispozici celkem 747 MiB operační paměti RAM (total, 765656 / 1024), ze které je použito 140 MiB (used, 143684 / 1024) a 607 MiB je volných (free, 621972 / 1024). Sdílená paměť není vypočítávána (shared), buffery4) zabírají 55 MiB paměti (56444 / 1024) a disková cache5) pak 31 MiB (32496 / 1024).
Na druhém řádku (-/+ buffers/cache) vidíme, že použito je reálně jen 53 MiB paměti (54744 / 1024), protože zbytek do 140 MiB (143684 / 1024) zabírají buffery a cache. Takže pokud by se buffery a cache odečetly, máme 694 MiB (710912 / 1024) volné paměti.
Třetí řádek (Swap) oznamuje, že v počítači je celkem 2047 MiB swapu (2096472 / 1024), ze kterého není obsazen ani jeden bajt a celý je tak úplně volný. Označení swap není přesné, správněji se jedná o prostor na disku pro odkládání nepoužívaných stránek paměti (tzv. paging).
Základním principem správy paměti v Linuxu totiž je, že veškerá dostupná volná paměť se používá na buffery a cache, aby se urychlil přístup na pevný disk. V případě nedostatku operační paměti RAM pak jsou buffery a cache automaticky zmenšovány spolu s odkládáním nepoužívaných stránek paměti (4 kiB bloky) na disk (tzv. stránkování).
$ df Souborový systém 1K bloků Použité Volné Uži% Připojeno do /dev/sda1 17856888 1913572 15021592 12% / tmpfs 382828 0 382828 0% /dev/shm
$ df -h Souborový systém Velikost Užito Volno Uži% Připojeno do /dev/sda1 18G 1,9G 15G 12% / tmpfs 374M 0 374M 0% /dev/shm
$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 7 model name : AMD Duron(tm) processor stepping : 0
cpu MHz : 1100.019 cache size : 64 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow up bogomips : 2200.03 clflush size : 32 power management: ts
Informace o všech PCI sběrnicích Vašeho počítače a zařízeních připojených k těmto sběrnicím lze získat pomocí
$ /sbin/lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT8361 [KLE133] Host Bridge 00:01.0 PCI bridge: VIA Technologies, Inc. VT8361 [KLE133] AGP Bridge 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40) 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a) 00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a) 00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40) 00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50) 00:0a.0 Network controller: RaLink RT2561/RT61 802.11g PCI 00:0f.0 Ethernet controller: ADMtek NC100 Network Everywhere Fast Ethernet 10/100 (rev 11) 01:00.0 VGA compatible controller: Trident Microsystems CyberBlade/i1
Informace o všech USB sběrnicích Vašeho počítače a zařízeních připojených k těmto sběrnicím lze získat pomocí
$ /sbin/lsusb Bus 001 Device 004: ID 058f:6377 Alcor Micro Corp. Multimedia Card Reader Bus 002 Device 002: ID 0458:003a KYE Systems Corp. (Mouse Systems) NetScroll+ Mini Traveler / Genius NetScroll 120 Bus 002 Device 003: ID 05af:0806 Jing-Mold Enterprise Co., Ltd HP SK806A Keyboard Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Poznámka: Program lsusb
je součástí balíčku usbutils
. V případě potřeby tento balíček nainstalujete pomocí
dnf -y install usbutils
$ cat /proc/partitions major minor #blocks name 7 0 196360 loop0 8 0 39082680 sda 8 1 18434556 sda1 8 2 2096482 sda2
$ dmidecode # dmidecode 2.9 SMBIOS 2.2 present. 33 structures occupying 942 bytes. Table at 0x000F0800. Handle 0x0000, DMI type 0, 19 bytes BIOS Information Vendor: Award Software International, Inc. Version: 6.00 PG Release Date: 10/04/2002 ... Handle 0x0001, DMI type 1, 25 bytes System Information Manufacturer: MICRO-STAR INTERNATIONAL CO., LTD Product Name: MS-6378 Version:
Ovladače nesvobodného software jako jsou ovladače grafických karet přímo do výrobce, nejsou součástí standardních repozitářů. Pro jejich instalaci je potřeba přidat další repozitář viz kapitoly k jednotlivým ovladačům.
Pro instalaci těchto ovladačů vždy používejte připravené balíky z repozitářů. Nikdy neinstalujte ovladače stažené přímo ze stránek výrobce, pokud skutečně nevíte co děláte. (Výrobce distribuuje ovladače ve formě zdrojového kódu, který je potřeba kompilovat atd.)
Z terminálu v grafickém rozhraní spusťte
glxinfo | grep -i render
Pokud se vám vypíše
direct rendering: No OpenGL render string: Mesa GLX Indirect
Pak akcelarace grafické karty nefunguje a pro její zprovoznění je potřeba pravděpodobně nainstalovat dodatečný ovladač.
Pokud se vypíše něco jako
direct rendering: Yes OpenGL renderer string: GeForce 6150SE nForce 430/PCI/SSE2 GL_NVX_conditional_render, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod,
Pak akcelerace funguje.
Pokud
direct rendering: Yes OpenGL renderer string: Software Rasterizer
Pak funkce akcelerace fungují, ale jsou nahrazeny softwarovými výpočty pomocí procesoru.
Pro grafické karty nVidia je možné ve Fedoře používat tři různé ovladače. Tyto se od sebe navzájem liší podporovanými funkcemi.
To, jaký balíček je třeba stáhnout a nainstalovat, je dáno čipem Vaší grafické karty. V současnosti existují tři různé balíčky, které obsahují podporu grafických karet nVidia. Úplný seznam aktuálně podporovaných karet včetně verze ovladače, která tyto karty podporuje naleznete na http://us.download.nvidia.com/XFree86/Linux-x86/100.14.19/README/appendix-a.html na stránkách společnosti nVidia.
Pro zprovoznění grafických karet nVidia řady novější než Geforce 5 je zapotřebí nainstalovat balíčky kmod-nvidia
a xorg-x11-drv-nvidia
odpovídající typu vašeho jádra. Od Fedory 11 se jako výchozí instaluje jádro s PAE (podpora velké paměti). Proto je potřeba instalovat odpovídající moduly.
dnf -y install kmod-nvidia xorg-x11-drv-nvidia-libs
Pro i686 (32bit) s PAE (> 4GB RAM) dnf -y install kmod-nvidia-PAE xorg-x11-drv-nvidia-libs.i686
Pokud máte starší grafickou kartu nVidia řady Geforce až Geforce 5, použijte balíček kmod-nvidia-173xx
.
dnf -y --enablerepo=rpmfusion-nonfree-updates install kmod-nvidia-173xx
Starší kmod-nvidia-96xx
již není kompatibilní s novými verzemi Xorg.
<del>dnf -y --enablerepo=rpmfusion-nonfree-updates install kmod-nvidia-96xx</del>
Poznámka: Vzhledem k tomu, že výše uvedené balíčky mají formu rozšíření jádra, musí tyto balíčky odpovídat verzi Vašeho jádra. Je tak možné, že společně s ovladačem bude zapotřebí stáhnout také nové jádro.
Pokud máte aktivní SELinux povolit vykonávání kódu na zásobníku, které ovladač vyžaduje
setsebool -P allow_execstack on
Pokud máte s instalací ovladače problémy, podívejte se na fórum Linux and nVidia Graphics nebo na stránky www.mjmwired.net. Řada problémů souvisejících s instalací ovladačů pro grafické karty nVidia se řeší také na našem fóru.
Pokud používáte Google Earth či Wine pro hry je potřeba doinstalovat 32 bitové knihovny i do 64 bitového systému:
dnf --enablerepo=rpmfusion-nonfree-updates install xorg-x11-drv-nvidia-libs.i686
Svobodné ovladače nouveau se v poslední době výrazně zlepšily, co se týče stability a výkonu, a často fungují lépe než proprietární ovladače. Pokud jste instalovali proprietární ovladače z RPM Fusion, můžete je odinstalovat a vrátit se k ovladačům nouveau pomocí následujícího návodu:
Před samotnou odinstalací proprietární ovladače nejdříve zakažte (nvidia-config-display nahraďte nvidia-96xx-config-display nebo nvidia-173xx-config-display, pokud je to potřeba):
nvidia-config-display disable rm /etc/X11/xorg.conf
Nebo můžete změnit pole Driver
v /etc/X11/xorg.conf
na nouveau
a odstranit nomodeset
a rdblacklist=nouveau
z /etc/boot/grub/grub.conf
.
Poté systém restartujte.
Pokud vše funguje v pořádku, můžete proprietární ovladač odinstalovat:
dnf remove xorg-x11-drv-nvidia\* livna-config-display
Pro grafické karty ATI je možné ve Fedoře používat tři různé ovladače. Tyto se od sebe navzájem liší podporovanými funkcemi a kartami.
Poznámka: Ovladač se dříve jmenoval fglrx nyní catalyst.
Poznámka: Pro karty Radeon 9250 a starší není potřeba ovladač catalyst instalovat.
Pro běžnou práci lze používat ovladače, které jsou ve výchozí instalaci Fedory. Od Fedory 11 se jako výchozí instaluje jádro s PAE (podpora velké paměti). Proto je potřeba instalovat odpovídající moduly buď s nebo bez PAE.
Ve Fedoře 20 nejsou ovladače dostupné z repozitáře RPMFusion a není možné ovladače catalyst instalovat ani z oficiálních stránek, neboť jsou nekompatibilní s úpravami pro nový grafický server Wayland, jehož podpora je ve Fedoře 20 přidána. Zatím neexistuje jednoduchý postup jak ovladače zprovoznit.
Ovladač pro grafické karty ATI nainstalujete pomocí
dnf -y install kmod-catalyst xorg-x11-drv-catalyst
Pro i686 (32bit) s PAE (> 4GB RAM) dnf -y install kmod-catalyst-PAE xorg-x11-drv-catalyst.i686
Jestliže tento postup selže, pozorně si pročtěte phoronix forum a atiblog. Řada problémů se také již řešila na stránkách našeho fóra.
UPOZORNĚNÍ: Ovladač neobsahuje podporu pro karty Radeon 9250 a starší. Ty jsou akcelerovány již v Xorg ovladačem radeon a pro běžné použití není potřeba catalyst ovladač instalovat.
Každý disk / mechanika má svůj soubor v adresáři /dev
. Tyto soubory, které jsou zodpovědné za komunikaci s konkrétním hardwarem, se nazývají soubory zařízení6). Systém souborů daného disku / mechaniky7) je pak připojován do k tomu určeného adresáře. Seznam všech momentálně připojených disků / mechanik lze získat např. pomocí příkazu
mount /dev/sda6 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda7 on /home type ext3 (rw) /dev/sda8 on /opt type ext3 (rw) /dev/sda1 on /media/windows_c type ntfs (ro,nls=utf8,umask=222) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) automount(pid2036) on /net type autofs (rw,fd=4,pgrp=2036,minproto=2,maxproto=4) /dev/sr0 on /media/DVD_03 type iso9660 (ro,noexec,nosuid,nodev,uid=500)
Z výše uvedeného výpisu vyplývá, že systém disponuje jedním diskem sda8). Ten je rozdělen na několik diskových oddílů. Momentálně jsou připojeny oddíly:
sda1
(jedná se o oddíl OS Windows - systém souborů ntfs) připojený do adresáře /media/windows_c
,sda6
(jedná se o Linuxový oddíl - systém souborů ext3) připojený do kořenového adresáře /
,sda7
(jedná se o Linuxový oddíl - systém souborů ext3) připojený do adresáře /home
,sda8
(jedná se o Linuxový oddíl - systém souborů ext3) připojený do adresáře /opt
.
Dále je připojen DVD disk v mechanice /dev/sr0
do adresáře /media/DVD_03
9).
Poznámka: Vedle výše uvedeného jsou také připojeny speciální systémy souborů (např. proc
, sysfs
), které využívá systém Linux. Tyto systémy souborů ponecháme stranou.
Značení disků je na první pohled patrné. Každé takové zařízení je označeno jako sdx
, kde x
představuje „pořadové“ písmeno zařízení. sda
tak vždy označuje první disk systému. Jestliže je disk rozdělen na oddíly, jsou tyto oddíly označené čísly - např. sedmý oddíl disku prvního disku je označen jako sda7
. Značení CD/DVD mechanik je podobné - v našem případě je DVD mechanika označena jako sr0
10). Protože řada aplikací očekává, že soubor zařízení pro první CD/DVD mechaniku v systému bude /dev/cdrom
, jsou vytvořeny na tento soubor symbolické linky. O tom se lze snadno přesvědčit pomocí příkazu
ls -la /dev/cdrom root root 3 Aug 31 20:21 /dev/cdrom -> sr0
V praxi to znamená, že aplikace, která se bude odkazovat na /dev/cdrom
, bude ve skutečnosti pracovat s /dev/sr0
, aniž by o tom měla tušení.
Seznam všech zařízení v systému lze získat pomocí příkazu
ls -la /dev/s[c,d]*
lrwxrwxrwx 1 root root 3 24. kvě 11.13 /dev/scd0 → sr0 brw-r—– 1 root disk 8, 0 24. kvě 11.13 /dev/sda brw-r—– 1 root disk 8, 1 24. kvě 11.13 /dev/sda1 brw-r—– 1 root disk 8, 2 24. kvě 11.13 /dev/sda2 brw-r—– 1 root disk 8, 5 24. kvě 11.13 /dev/sda5 brw-r—– 1 root disk 8, 6 24. kvě 11.13 /dev/sda6 brw-r—– 1 root disk 8, 7 24. kvě 11.13 /dev/sda7 brw-r—– 1 root disk 8, 8 24. kvě 11.13 /dev/sda8 brw-r—– 1 root disk 8, 9 24. kvě 11.13 /dev/sda9
Výpis všech diskových oddílů pak získáte pomocí příkazu
cat /proc/partitions major minor #blocks name ... 3 0 78150744 sda 3 1 5116671 sda1 3 2 1 sda2 3 5 20482843 sda5 3 6 10233373 sda6 3 7 10233373 sda7 3 8 2048256 sda8 3 9 28989261 sda9
Následující příkaz musíte spustit jako superuživatel.
/sbin/fdisk -l Device Boot Start End Blocks Id System /dev/sda1 * 1 637 5116671 7 HPFS/NTFS /dev/sda2 638 9729 73031490 f W95 Ext'd (LBA) /dev/sda5 638 4461 30716248+ 7 HPFS/NTFS /dev/sda6 4462 5735 10233373+ 83 Linux /dev/sda7 5736 5990 2048256 83 Linux /dev/sda8 5991 9599 28989261 83 Linux /dev/sda9 9600 9729 1044193+ 82 Linux swap / Solaris
Seznam diskových oddílů a míry využití jejich diskového prostoru získáte pomocí
df -T -h Filesystem Type Size Used Avail Use% Mounted on /dev/sda6 ext3 9.5G 5.4G 3.6G 61% / tmpfs tmpfs 252M 0 252M 0% /dev/shm /dev/sda7 ext3 1.9G 582M 1.3G 32% /home /dev/sda8 ext3 27G 4.5G 21G 18% /opt /dev/sda1 ntfs 4.9G 3.1G 1.9G 63% /media/windows_c /dev/scd0 iso9660 1.8G 1.8G 0 100% /media/DVD 03
Seznam všech připojených zařízení (včetně jednotlivých diskových oddílů) získáte pomocí
mount /dev/sda6 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda7 on /home type ext3 (rw) /dev/sda8 on /opt type ext3 (rw) /dev/sda1 on /media/windows_c type ntfs (ro,nls=utf8,umask=222) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) automount(pid2036) on /net type autofs (rw,fd=4,pgrp=2036,minproto=2,maxproto=4) /dev/scd0 on /media/DVD_03 type iso9660 (ro,noexec,nosuid,nodev,uid=500)
Předpokládejme, že CD/DVD-ROM je zařízení /dev/cdrom
. Do příkazové řádky zadejte
/sbin/hdparm -d1 /dev/cdrom gedit /etc/hdparm.conf
Do souboru hdparm.conf
vložte následující řádek
/dev/cdrom {dma = on}
a editovaný soubor uložte.
Předpokládejme, že CD/DVD-ROM je zařízení /dev/cdrom
. Pro přípojení CD/DVD-ROM zadejte do
devkit-disks --mount /dev/cdrom
Mechaniku lze odpojit pomocí příkazu
devkit-disks --unmount /dev/cdrom
Předpokládejme, že CD/DVD-ROM je zařízení /dev/cdrom
. V některých případech může systém odmítnout odpojit mechaniku CD/DVD-ROM z důvodů, že je připojené CD/DVD využíváno některou ze spuštěných aplikací, ačkoliv to není pravda. V tomto případě postup popsaný v kapitole Ruční připojení/odpojení CD/DVD-ROM nebude fungovat. Odpojení mechaniky CD/DVD-ROM je třeba „vynutit“ příkazem
umount -l /dev/cdrom
V některých případech se hodí možnost omezení rychlosti otáčení médií v mechanikách a to např. při poslechu hudby, kdy nechcete být rušeni hučením mechaniky. K tomu se dá použít příkaz
hdparm -E <rychlost> /dev/dvd
Poznámka: Ne všechny mechaniky musí být schopny fungovat danou rychlostí, resp. ji udržet.
Pro znovupřipojení všech zařízení uvedených v tabulce fstab
bez nutnosti restartu počítače zadejte do příkazové řádky
mount -a
Řadu užitečných informací o hardwaru lze získat pomocí příkazu dmesg
, který obsahuje spravy z jadra operačního systému a zpravidla obsahuje informace o detekovan hardware
dmesg Linux version 2.6.18-1.2849.f8 (brewbuilder@hs20-bc2-4.build.redhat.com) (gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)) #1 SMP Fri Nov 10 12:45:28 EST 2006 ... 127MB HIGHMEM available. 896MB LOWMEM available. Using x86 segment limits to approximate NX protection ... Detected 1666.880 MHz processor. ... CPU0: AMD Athlon(TM) XP 2000+ stepping 00 ... agpgart: Detected VIA KT400/KT400A/KT600 chipset ... VP_IDE: VIA vt8235 (rev 00) IDE UDMA133 controller on pci0000:00:11.1 ... hda: ST380011A, ATA DISK drive ... hdc: HL-DT-ST DVDRAM GSA-4165B, ATAPI CD/DVD-ROM drive ...
cx88[0]: Leadtek Winfast 2000XP Expert config: tuner=38, eeprom[0]=0x01 ...
Poznámka: Vzhledem k rozsáhlosti výpisu je vhodné výstup příkazu dmesg
přesměrovat do souboru
dmesg > dmesg_output.txt
popř. „přefiltrovat“ přes příkaz grep
dmesg | grep "klicove_slovo"
Na stránkách http://ipw2200.sourceforge.net/firmware.php?fid=6 odsouhlaste licenci 11) a uložte soubor ipw2200-fw-2.4.tgz
na plochu. Po té otevřete terminál a postupně vkládejte následující řádky.
mkdir tmp mv ~/Desktop/*-2.4.tgz ~/tmp cd tmp tar -zxvf ipw2200-fw-2.4.tgz cp * /usr/lib/firmware rmmod ipw2200 modprobe ipw2200 iwconfig
Nyní byste již měli přípojný bod vidět. Ovládat ho můžete přes aplikaci Network Manager.
Abyste mohli použít program pro identifikaci chipsetu, zadejte do příkazové řádky
wget -c http://easylinux.info/uploads/scanModem.gz gunzip -c scanModem.gz > scanModem chmod +x scanModem cp scanModem /usr/bin/
K identifikaci chipsetu pak stačí zadat
scanModem gedit Modem/ModemData.txt
V souboru ModemData.txt
naleznete informace o Vašem modemu.
hd
doprovázené písmenem, které vyjadřovalo pořadí disku. Od verze 7 používá pro všechny disky označení sd
, které se původně používalo pouze pro SCSI zařízení./dev/sr1
.