Terminal pogryzł człowieka: dmidecode
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.