Jak diagnostikovat problémy
V Linuxu a především ve Fedoře
Jak zjistit příčinu problému
Linux má dva základní módy práce - textový a grafický (více o struktuře Linuxu). Problémy se nejčastěji řeší pomocí textového módu, zvláště pak, když grafický z nějakého důvodu nefunguje.
- Do textového módu (tzv. na konzoli se přepnete stiskem Alt+F2-F6).
- Zde se přihlašte jako root.
- Pro pohodlnou práci s textovým režimem se velmi hodí tzv. visuální shell, neboli správce souborů Midnight Commander (obdoba Total Commanderu, Norton Commanderu, Faru z MS Windows). Spouští se příkazem „
mc
“. Z něj můžete snadno hledat, prohlížet nebo editovat soubory. - Pokud Midnight Commander nemáte nainstalován použijte k nainstalování příkaz
yum install mc
Pozn.: detaily práce s příkazovou řádkou v textovém režimu jsou popsány v článku Kouzlo příkazové řádky.
Záznamy systému
Linux a aplikace v něm, se o veškeré své činnosti snaží vést záznamy (log), právě proto, aby v případě problémů bylo možné zjistit proč je něco špatně.
Pokud vám funguje grafické rozhraní najdete záznamy systému v aplikaci Záznamy (gnome-logs). V textovém rozhraní můžete záznamy procházet pomocí aplikace journalctl.
Pokud z nějakých důvodů dochází k chybám v systému, je záhodno prohlédnout obsah těchto dvou souborů, zda neobsahují nějakou informaci o chybovém stavu.
Běžné aplikace
Pokud se jedná o problém s běžnou aplikací, nemusí se její chybový výstup ukládat mezi log záznamy, ale aplikace ho prostě vypisuje v textové podobě. V takovém případě je potřeba aplikaci spustit z terminálu, jinak chybová hlášení neuvidíte.
Informace z běhu sytému
Všechny informace, které kernel shromáždí za běhu systému jsou dostupné v adresáři
/proc/ a /sys/
Např. /proc/cpuinfo obsahuje informace o procesoru.
Většina informací zde je uložena ve velmi strohé podobě, k jejich uživatelsky přívětivé implementaci slouží nejrůznější nástroje, je však možné je číst i přes prohlížení pomocí Midnight Commanderu.
Příkazy k diagnostice systému
dmesg - vypíše zprávy jádra (kernelu) o startu systému a nalezeném HW. lsmod - vypíše seznam zavedených ovladačů (modulů). lspci - vypíše seznam všech PCI zařízení v systému.
Jak problém napravit
Stejně jako jsou záznamy systému ve /var/log/
, je většina globálních konfiguračních souborů v
/etc/
V naprosté většině se jedná o prosté textové soubory, které lze snadno měnit pomocí editoru v Midnight Commanderu. Konfigurační soubory buď sami obsahují nápovědu k jednotlivým volbám, nebo je k nim nápověda dostupná přes příkaz
man jmeno_souboru.conf
Pokud vám tedy např. autokonfigurace při instalaci špatně nadetekovala grafickou kartu, lze ji pro grafické prostředí změnit v konfiguračním souboru
/etc/X11/xorg.conf
Jak pracovat s ovladači (moduly) - pro pokročilé
Pokud se stane, že jádro kernel nedetekuje správně váš hardware, nebo chce použít jiný ovladač je potřeba je nějak zavádět a nějak odstraňovat.
lsmod - vypíše zavedené ovladače modprobe <jmeno_modulu> - zavede ovladač rmmod <jmeno_modulu> - odstraní ovladač (pouze pokud není používán!)
Kde nalézt dostupné ovladače (moduly)
Každá verze jádra s sebou nese všechny dostupné ovladače. Ty jsou uloženy v
/lib/modules/<verze jadra>/kernel
Verzi jádra zjistíme příkazem
uname -r
Pokud hledáme např. ovladač ke zvukové kartě bude s největší pravděpodobností v
/lib/modules/<verze jadra>/kernel/sound
Pokud z názvu ovladače nebo zařízení není zřejmé, který modul je potřeba zavést, je nejlepší použít některý internetový vyhledávač a dotázat se na spojení linux module jméno zařízení
.
Jak ovladač zavádět při každém startu
Nalezený ovladač je pak potřeba, pokud systém HW vůbec nedetekuje, přidat do /etc/sysconfig/modules
a to zhruba následovně:
(echo '#!/bin/sh'; echo 'modprobe advansys') > /etc/sysconfig/modules/advansys.modules chmod +x /etc/sysconfig/modules/advansys.modules
Kde advansys
nahradíte jménem modulu, který odpovídá vašemu zařízení.
Pokud HW detekuje, ale používá špatný ovladač pak lze do /etc/modprobe.conf
přidat alias. Např.
alias eth0 e1000
jméno zařízení (= eth0) zjistíte z výpisu příkazu dmesg
.
Jak hlásit problém a žádat o radu
- Poskytněte těm, které žádáte o radu dostatek podstatných informací.
- Pište strukturovaně
Můžete postupovat podle následující struktury:
Distribuce, verze: Fedora Core 4 Aktuální jádro (kernel): 2.6.14-1.1637_FC (zjistíte pomocí ''uname -r'') V případě, že problém souvisí s hardware: Hardware: Asus KV8 nForce3, ADM 64 3000+, nVidia geForce 6800, SATA 60GB Detaily hardware: (zjistíte příkazem ''lspci'') 00:00.0 Memory controller: nVidia Corporation CK804 Memory Controller (rev a3) 00:01.1 SMBus: nVidia Corporation CK804 SMBus (rev a2) 00:02.0 USB Controller: nVidia Corporation CK804 USB Controller (rev a2) 00:07.0 IDE interface: nVidia Corporation CK804 Serial ATA Controller (rev a3) 00:0c.0 PCI bridge: nVidia Corporation CK804 PCIE Bridge (rev a3) 01:07.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08) 01:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 01:0a.0 FireWire (IEEE 1394): Texas Instruments TSB82AA2 IEEE-1394b Link Layer Controller (rev 01) 05:00.0 VGA compatible controller: nVidia Corporation GeForce 6200 TurboCache(TM) (rev a1) Zavedené ovladače: (zjistíte příkazem ''lsmod'') isofs 25096 0 ipv6 261408 12 parport_pc 24620 1 lp 9984 0 parport 25152 2 parport_pc,lp it87 23264 0 hwmon_vid 2432 1 it87 hwmon 2656 1 it87 i2c_isa 4544 1 it87 ip_tables 20288 3 ipt_LOG,ipt_REJECT,iptable_filter video 15496 0 fan 3912 0 container 3776 0 button 5984 0 battery 8776 0 ac 4168 0 ohci1394 31884 0 ieee1394 93432 1 ohci1394 nvidia 4379820 12 snd_emu10k1_synth 7040 0
- Co jste dělali naposled před tím, než TO přestalo fungovat.
- Co jste přesně zkusili udělat proto, aby TO zase začalo fungovat.
Pokud se vám problém podaří vyřešit, podělte se s ostatními o řešení
- proto, aby vám někdo neodpovídal zbytečně,
- kdyby měl někdo stejný problém, aby zde našel jako ho vyřešit.