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_SDRAM|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.