Linux E X P R E S

Facebook

Podívejte se počítači pod kapotu

konzole.jpg

Možná znáte ten pocit, kdy sedíte u počítače a není to ono, něco nefunguje nebo funguje jen z části nebo si počítač najednou začne dělat co ho napadne. V tomto a dalších okamžicích se ptáme, co se nachází uvnitř počítače, kontrolujeme, zda vše funguje tak, jak má, a hledáme příčinu závady. Tou nejjednodušší metodou je porozhlédnout se po vnitřku počítače pěkně z pohodlí operačního systému bez nutnosti odpojování všemožných kabelů, šroubování a také navštěvování zpravidla ne příliš příjemných prostorů pod stolem.


Procesor a paměť

Rychlost procesoru a velikost operační paměti se nemalou měrou podílí na rychlosti celého počítače. První, na co se tedy můžeme ptát, je, jaký máme procesor a kolik máme operační paměti. První otázku nám zodpoví výpis cat /proc/cpuinfo:

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 23
model name	: Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz
stepping	: 10
cpu MHz		: 1596.000
cache size	: 3072 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
bogomips	: 5576.18
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 23
model name	: Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz
stepping	: 10
cpu MHz		: 1596.000
cache size	: 3072 KB
physical id	: 0
siblings	: 2
core id		: 1
cpu cores	: 2
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm
bogomips	: 5571.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

Z výše uvedeného je např. vidět, že mám dva procesory - dvě jádra (0 a 1), které běží na frekvenci necelých 1.6 GHz (i když je výrobcem dané maximum nějakých 2.8 GHz, což je vidět v řádku model name). Někoho mohou dál zajímat i značky (flags), které nám říkají, jaké instrukce jsou procesorem podporovány.

Význam některých značek (flags) najdete např. v zápisku na Svoccblogu.

Druhou otázku zodpoví výpis free nebo např. free -m (pokud chcete mít hodnoty rovnou v MB).

             total       used       free     shared    buffers     cached
Mem:          3958       1994       1964          0          0       1318
-/+ buffers/cache:        675       3283
Swap:         2957         50       2906

První řádek označuje celkovou (total) velikost operační paměti (3958 MB) a na druhém řádku je zřejmě to nejdůležitější - velikost obsazené paměti, v našem případě 675 MB. To že systém o řádek výš ukazuje, že využil více paměti (celkem 1994 MB), ničemu nevadí, tato paměť se využívá jako paměť cache pro rychlé načítání a práci s programy a soubory. Poslední řádek pak značí velikost a využití swapu, tedy stránkovacího oddílu. V případě, že je swap příliš obsazen, chtělo by to dokoupit operační paměť počítače.

Ilustrační obrázekIlustrační obrázek

První pohled na základní desku

Podobně jako vám lsusb ukáže informace o zařízeních připojených do portu USB, lspci ukazuje základní informace o čipech a kartách připojených na základní desce.

00:00.0 Host bridge: Intel Corporation 82G35 Express DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation 82G35 Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation 82G35 Express Integrated Graphics Controller (rev 03)
00:19.0 Ethernet controller: Intel Corporation 82566DC Gigabit Network Connection (rev 02)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev f2)
00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC Interface Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801H (ICH8 Family) 2 port SATA IDE Controller (rev 02)
03:00.0 IDE interface: JMicron Technologies, Inc. JMB368 IDE controller
04:05.0 FireWire (IEEE 1394): Agere Systems FW323 (rev 70)

I když je výpis na první pohled trochu obsažný až složitý, naleznete zde informace o vaší grafické kartě (řádek VGA případně Display), v mém případě to je integrovaná grafika Intel 82G36, informace o síťové kartě (řádek Ethernet), zde je vidět, že se jedná o kartu s maximální rychlostí přenosu 1 Gb/s, dále se na výpisu ojevuje zvuková karta (řádek Audio), opět integrovaný Intel. Konečně někoho může zajímat řádek IDE, který označuje řadič pevného disku, a pro mě je zase zajímavý poslední řádek s textem FireWire, který mě informuje o tom, že je k dispozici také tento port (ať už fyzicky přímo vyvedený vzadu na počítači, nebo pouze připravený na základní desce pro připojení kabelem).

Chcete vědět víc? Zadejte dotaz ve tvaru lspci -n a jeho výstup vložte na adrese kmuto.jp/debian/hcl. Zobrazí se vám další informace, zároveň se také můžete podílet na jejich doplnění či přidání.

Druhý pohled (nejen) na základní desku

Bez základní desky by to nešlo, to už je dáno tím slovem základní. ;-) Často potřebujeme zjistit její označení, výrobce, verzi BIOSu a další důležité informace, které nám pomohou volit ty správné komponenty např. v případě upgradu počítače. Jeden z mnoha nástrojů, který vám tyto informace poskytne, je program hwinfo. Rychlý pohled na hardware počítače zjistíte zadáním hwinfo --short.

                       Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz, 1596 MHz
                       Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz, 1596 MHz
keyboard:
  /dev/input/event1    AT Translated Set 2 keyboard
mouse:
  /dev/input/mice      Macintosh mouse button emulation
  /dev/input/mice      ImPS/2 Generic Wheel Mouse
monitor:
                       Generic Monitor
graphics card:
                       Intel 965G-1
                       Intel 82G35 Express Integrated Graphics Controller
sound:
                       Intel 82801H (ICH8 Family) HD Audio Controller
storage:
                       Intel 82801H (ICH8 Family) 4 port SATA IDE Controller
                       Intel 82801H (ICH8 Family) 2 port SATA IDE Controller
                       JMicron JMB368 IDE controller
network:
  eth1                 Intel 82566DC Gigabit Network Connection
network interface:
  lo                   Loopback network interface
  eth1                 Ethernet network interface
  teredo               Network Interface
  vboxnet0             Ethernet network interface
disk:
  /dev/block/8:0       WDC WD5001AALS-0
partition:
  /dev/block/8:1       Partition
  /dev/block/8:2       Partition
  /dev/block/8:3       Partition
cdrom:
  /dev/block/3:0       HL-DT-STDVD-RAM GH22LP20
usb controller:
                       Intel 82801H (ICH8 Family) USB UHCI Controller #4
                       Intel 82801H (ICH8 Family) USB UHCI Controller #5
                       Intel 82801H (ICH8 Family) USB2 EHCI Controller #2
                       Intel 82801H (ICH8 Family) USB UHCI Controller #1
                       Intel 82801H (ICH8 Family) USB UHCI Controller #2
                       Intel 82801H (ICH8 Family) USB UHCI Controller #3
                       Intel 82801H (ICH8 Family) USB2 EHCI Controller #1
bios:
                       BIOS
bridge:
                       Intel 82G35 Express DRAM Controller
                       Intel 82801H (ICH8 Family) PCI Express Port 1
                       Intel 82801H (ICH8 Family) PCI Express Port 2
                       Intel 82801H (ICH8 Family) PCI Express Port 3
                       Intel 82801 PCI Bridge
                       Intel 82801HB/HR (ICH8/R) LPC Interface Controller
hub:
                       Linux 2.6.26-2-amd64 uhci_hcd UHCI Host Controller
                       Linux 2.6.26-2-amd64 uhci_hcd UHCI Host Controller
                       Linux 2.6.26-2-amd64 ehci_hcd EHCI Host Controller
                       Linux 2.6.26-2-amd64 uhci_hcd UHCI Host Controller
                       Linux 2.6.26-2-amd64 uhci_hcd UHCI Host Controller
                       Linux 2.6.26-2-amd64 uhci_hcd UHCI Host Controller
                       Linux 2.6.26-2-amd64 ehci_hcd EHCI Host Controller
memory:
                       Main Memory
firewire controller:
                       Agere FW323
unknown:
                       FPU
                       DMA controller
                       PIC
                       Timer
                       Keyboard controller
                       PS/2 Controller
                       Intel 82801H (ICH8 Family) SMBus Controller
  /dev/ttyS0           16550A
  /dev/ttyS1           16550A

Zobrazí se uhlazený výpis, ve kterém navíc přibývají např. informace o pevném disku a jeho oddílech. Ale pojďme se věnovat základní desce. Označení základní desky a verzi BIOSu je možné vyčíst z výpisu hwinfo --bios:

...
  Processor Info: #0
    Socket: "LGA 775"
...
  BIOS Info: #4
    Vendor: "Intel Corp."
    Version: "ECG3510M.86A.0112.2009.0203.1136"
    Date: "02/03/2009"
...
  Board Info: #6
    Manufacturer: "Intel Corporation"
    Product: "DG35EC"
    Version: "AAE29266-210"

Z výpisu jsem vytáhl pouze některé řádky, které jsou asi nejzajímavější. Je z nich vidět označení patice procesoru (LGA 775), verze BIOSu (to je ta šílenost - ECG3510M.86A.0112.2009.0203.1136, ale konkrétně označuje verzi 112 BIOSu dané desky) a asi nejdůležitější je řádek Product (DG35EC), který je označením základní desky a umožní mi vyhledat její další specifikace na Internetu.

Podívejte se také na další možnosti programu hwinfo. Jejich seznam zobrazíte zadáním: hwinfo --help. Je jich opravdu hodně a postupně pokrývají celý hardware vašeho počítače.

Pevný disk

Základní informace o pevném disku získáte zadáním příkazu hdparm -i /dev/sda.

/dev/sda:

 Model=WDC WD5001AALS-00L3B2                   , FwRev=01.03B01, SerialNo=     WD-WCASY5896734
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
 BuffType=unknown, BuffSize=32767kB, MaxMultSect=16, MultSect=?16?
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=976773168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-1,2,3,4,5,6,7

 * signifies the current active mode

Kromě označení pevného disku je vidět DMA mód disku, který udává rychlost čtení a zapisování dat. Aktuální mód je označený hvězdičkou, v mém případě to je *udma6. Jednoduché otestování přenosové rychlosti disku můžete provést zadáním hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   3790 MB in  2.00 seconds = 1895.71 MB/sec
 Timing buffered disk reads:  272 MB in  3.01 seconds =  90.39 MB/sec

Příkaz hdparm -i lze také s oblibou použít pro zjištění označení a verze firmwaru DVD mechaniky.

Zatímco kešované čtení vykáže úchvatné hodnoty, důležitější je druhý řádek s mnohem menší hodnotou. Pokud by byla hodnota příliš nízká, asi nebude něco v pořádku.

Více informací o pevném disku získáte ze S.M.A.R.T. disku zadáním např. smartctl --all /dev/sda

=== START OF INFORMATION SECTION ===
Device Model:     WDC WD5001AALS-00L3B2
Serial Number:    WD-WCASY5896734
Firmware Version: 01.03B01
User Capacity:    500 107 862 016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Oct 23 12:37:16 2009 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

....

Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   163   163   021    Pre-fail  Always       -       4808
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       83
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       422
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       81
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       18
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       83
194 Temperature_Celsius     0x0022   112   107   000    Old_age   Always       -       35
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

Pěkným počtením bývá zpravidla tabulka na konci výpisu. Zde najdete informace o počtu hodin, které disk naběhal (Power_On_Hours), teplotě disku (Temperature_Celsius), počtu zapnutí disku (Power_Cycle_Count) a pro někoho zajímavý řádek (Spin_Up_Time) související s počtem přístupů na disk. Samozřejmě se tato tabulka může lišit dle výrobce a typu disku.

Pomocí technologie S.M.A.R.T. je možno disk také otestovat, pokud to chcete provést, podívejte se na parametr -t (např. smartctl -t short /dev/sda nebo smartctl -t long /dev/sda), výstup testu se pak zobrazuje v logu (smarctl -l selftest /dev/sda). Více informací najdete třeba na webu barbara.atw.hu.

Teplota

Příčinou problémů může být také ne příliš příznivá teplota některých komponent počítače. Jistě znáte příkaz sensors z balíčku lmsensors.

coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +31.0°C  (high = +76.0°C, crit = +100.0°C)  

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +34.0°C  (high = +76.0°C, crit = +100.0°C)  

w83627dhg-isa-06e0
Adapter: ISA adapter
VCore:       +0.85 V  (min =  +0.00 V, max =  +1.74 V)   
in1:        +10.40 V  (min =  +3.48 V, max = +13.04 V)   
AVCC:        +3.07 V  (min =  +0.99 V, max =  +2.62 V)   ALARM
3VCC:        +3.06 V  (min =  +0.94 V, max =  +3.14 V)   
in4:         +0.98 V  (min =  +1.02 V, max =  +0.98 V)   ALARM
in5:         +1.33 V  (min =  +0.62 V, max =  +2.03 V)   
in6:         +1.13 V  (min =  +4.99 V, max =  +4.25 V)   ALARM
VSB:         +3.07 V  (min =  +1.70 V, max =  +2.53 V)   ALARM
VBAT:        +0.70 V  (min =  +2.16 V, max =  +0.54 V)   ALARM
Case Fan:   1240 RPM  (min =  927 RPM, div = 16)
CPU Fan:    2008 RPM  (min =  334 RPM, div = 16)
Aux Fan:       0 RPM  (min =  390 RPM, div = 128)  ALARM
fan4:          0 RPM  (min =  811 RPM, div = 128)  ALARM
Sys Temp:    +42.0°C  (high = +66.0°C, hyst = +47.0°C)  sensor = diode
CPU Temp:    +55.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = diode
AUX Temp:    +71.5°C  (high = +80.0°C, hyst = +75.0°C)  sensor = diode
cpu0_vid:   +2.050 V

Výstup příkazu ovšem berte s rezervou, protože některé výkyvy jsou prostě v normě a také senzory na základní desce většinou nepatří k těm nejpřesnějším. Co třeba na výše uvedeném výstupu nepochopím, jak může být teplota na procesoru (CPU Temp) vyšší než teplota jader CPU (Core 0 a 1).

Ilustrační obrázekIlustrační obrázek

Podobně je možno zjistit i teplotu pevného disku pomocí příkazu hddtemp, například tedy výpis příkazu hddtemp /dev/sda vypadá takto:

/dev/sda: WDC WD5001AALS-00L3B2: 36°C

Otestování operační paměti

Konečně poměrně častou příčinou divných pádů systému bývá operační paměť počítače. To, zda je vaše operační paměť v pořádku, zjistíte instalací balíčku memtest86 nebo lépe novější verzí memtest86+. Po instalaci dojde k přidání příslušné nabídky do menu zavaděče GRUB a otestování paměti počítače tak spustíte právě z této nabídky při startu počítače. Pro otestování paměti se doporučuje nechat proběhnout více průchodů (ne jen jeden). Přitom jeden průchod se skládá z několika různých testů.

Není nutné lézt po kolenou někde pod stolem

Ve článku jsem se snažil ukázat, že je možné zjistit řadu informací o počítači aniž bychom se nutně museli dívat do jeho útrob nebo studovat různé volby v BIOSu počítače. Pokud vám článek pomůže při otestování nového počítače či zjištění výbavy toho stávajícího, pak jistě splnil svůj smysl. Mně v tom tyto nástroje pomáhají.

Diskuze (8) Nahoru