Obsah

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.

Midnight Commander v češtině

  1. Do textového módu (tzv. na konzoli se přepnete stiskem Alt+F2-F6).
  2. Zde se přihlašte jako root.
  3. 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.
  4. 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

  1. Poskytněte těm, které žádáte o radu dostatek podstatných informací.
  2. 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 
  1. Co jste dělali naposled před tím, než TO přestalo fungovat.
  2. 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í

  1. proto, aby vám někdo neodpovídal zbytečně,
  2. kdyby měl někdo stejný problém, aby zde našel jako ho vyřešit.