Terminal pogryzł człowieka: dmidecode

Comment: 1

Ile to razy planowaliśmy rozbudowę naszego komputera i ile razy próbowaliśmy sobie przypomnieć, jakie kości pamięci posiadamy w użyciu. W dobie standardów DDR, DDR2, DDR3 i tak dalej wymiana pamięci to nielichy dylemat. Oczywiście rozkręcenie obudowy to najprostsze rozwiązanie, ale od czego są pożyteczne narzędzia tekstowe. Dzięki poleceniu biosdecode odczytamy dane BIOS, a za pomocą dmidecode tabele DMI staną się bardziej czytelne.

DMI (Desktop Management Interface) jest częścią specyfikacji System Management BIOS (SMBIOS). Z punku widzenia użytkownika DMI jest udostępnioną przez BIOS tabelą, która zawiera informacje o dostępnym sprzęcie. Tyle teorii, a jak wygląda to w praktyce?

W praktyce dane te mogą być odczytane w stanie surowym przez polecenie biosdecode, ale skoro doszukujemy się użytecznej strony terminala, to zdekodujemy sobie te dane przy pomocy polecenia dmidecode. Co dekodować, jak i skąd w ogóle wziąć dmidecode?

W większości dystrybucji dmidecode znajdziemy domyślnie w pakiecie. Gdyby było inaczej to Ubuntu/Mint/Manjaro/Arch posiadają ten program w podstawowych repozytoriach pod nazwą dmidecode (a to zaskoczenie).

Użycie dmidecode to kwestia określenia które dane nas interesują – tak po prostu:

sudo dmidecode --type numer

Gdzie numer określa krąg naszych zainteresowań:

# Type Short Description
0 BIOS
1 System
2 Base Board
3 Chassis
4 Processor
5 Memory Controller
6 Memory Module
7 Cache
8 Port Connector
9 System Slots
10 On Board Devices
11 OEM Strings
12 System Configuration Options
13 BIOS Language
14 Group Associations
15 System Event Log
16 Physical Memory Array
17 Memory Device
18 32-bit Memory Error
19 Memory Array Mapped Address
20 Memory Device Mapped Address
21 Built-in Pointing Device
22 Portable Battery
23 System Reset
24 Hardware Security
25 System Power Controls
26 Voltage Probe
27 Cooling Device
28 Temperature Probe
29 Electrical Current Probe
30 Out-of-band Remote Access
31 Boot Integrity Services
32 System Boot
33 64-bit Memory Error
34 Management Device
35 Management Device Component
36 Management Device Threshold Data
37 Memory Channel
38 IPMI Device
39 Power Supply

Jak zatem wynika z powyższego, aby otrzymać informację nt. zamontowanych w sprzęcie układów pamięci, wystarczy wpisać:

sudo dmidecode --type 17

… by otrzymać jak na dłoni konkretne i rzeczoawe informacje:

# dmidecode --type 17
# dmidecode 2.12
SMBIOS 2.6 present.

Handle 0x0017, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x0016
	Error Information Handle: No Error
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 2048 MB
	Form Factor: SODIMM
	Set: 1
	Locator: DIMM_A
	Bank Locator: Not Specified
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1333 MHz
	Manufacturer: 02FE            
	Serial Number: ED8D2E8A        
	Asset Tag: 0943
	Part Number: EBJ21UE8BDS0-DJ-F 
	Rank: Unknown

Handle 0x0018, DMI type 17, 28 bytes
Memory Device
	Array Handle: 0x0016
	Error Information Handle: No Error
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 2048 MB
	Form Factor: SODIMM
	Set: 1
	Locator: DIMM_B
	Bank Locator: Not Specified
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1333 MHz
	Manufacturer: 02FE            
	Serial Number: CF8D2E89        
	Asset Tag: 0943
	Part Number: EBJ21UE8BDS0-DJ-F 
	Rank: Unknown

W ten sposób otrzymaliśmy informacje o typie, prędkości, pojemności i innych parametrach naszej pamięci. I na tym nie koniec, gdyż korzystając z zacytowanej tabelki, możemy wyłuskać informacje nt. większości zainstalowanych w naszym komputerze komponentów.