====== 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 [[navody:strukturaos|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. {{ navody:mc.png?300|Midnight Commander v češtině}} - 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 [[http://sandbox.cz/~covex/linux/kouzlo_cmdline.html|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 - zavede ovladač rmmod - 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//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//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.