Op een computer met Linux kun je eenvoudig allerlei systeeminformatie opvragen via de command-line (cli, of opdrachtprompt). Dit is belangrijk zodat je precies weet welke kernel modules geladen moeten worden, of welke displaydriver in jouw X-configuratie. In dit artikel laat ik je zien hoe je informatie over jouw Linux systeem kunt inzien en geef ik je wat praktische voorbeelden.
Gebruik simpel dmidecode, lspci en lscpu om verschillende hardware- en systeeminformatie op te vragen in Linux.
dmidecode, of DMI table decoder
Het dmidecode
commando is waarschijnlijk één van de meest bekende en gebruikte opdrachten om systeeminformatie op te vragen. Informatie over jouw Linux systeem, zoals het type moederbord, BIOS-versie, CPU socket en familie, RAM geheugen, harde schijven, enzovoorts.
Je gebruikt het eenvoudig op de command-line (opdrachtprompt of cli), net zoals je WMIC kunt gebruiken om Windows systeeminformatie op te vragen.
Uit de manpage:
dmidecode is a tool for dumping a computer’s DMI (some say SMBIOS) table contents in a human-readable format. This table contains a description of the system’s hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision. Thanks to this table, you can retrieve this information without having to probe for the actual hardware.
…
SMBIOS stands for System Management BIOS, while DMI stands for Desktop Management Interface. Both standards are tightly related and developed by the DMTF (Desktop Management Task Force).
Gelukkig kent dmidecode ook een aantal parameters, waaronder -s
. Met de -s parameter geef je aan te willen zoeken naar een string keyword.
Toegepast op mijn huidige laptop geeft dit:
[root@office-nb jan]# dmidecode -s
dmidecode: option requires an argument -- 's'
String keyword expected
Valid string keywords are:
bios-vendor
bios-version
bios-release-date
system-manufacturer
system-product-name
system-version
system-serial-number
system-uuid
baseboard-manufacturer
baseboard-product-name
baseboard-version
baseboard-serial-number
baseboard-asset-tag
chassis-manufacturer
chassis-type
chassis-version
chassis-serial-number
chassis-asset-tag
processor-family
processor-manufacturer
processor-version
processor-frequency
Om systeem- en BIOS-informatie op te vragen gebruik je eenvoudigweg:
# dmidecode -s bios-vendor
Hewlett-Packard
# dmidecode -s bios-version
68IAV Ver. F.50
# dmidecode -s system-product-name
HP EliteBook 8570w
en CPU/processor informatie:
# dmidecode -s processor-version
Intel(R) Core(TM) i7-3840QM CPU @ 2.80GHz
Ja inderdaad, veel van deze informatie vind je ook in dmesg
.
Met de -t
parameter vraag je informatie van het Linux-systeem op per type. Bijvoorbeeld memory (wat informatie weggelaten)
# dmidecode -t memory
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
Handle 0x0005, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 32 GB
Error Information Handle: Not Provided
Number Of Devices: 4
Handle 0x0006, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0005
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: Bottom-Slot 2(right)
Bank Locator: BANK 0
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Micron
Serial Number: <intentionally left blank>
Asset Tag: <intentionally left blank>
Part Number: <intentionally left blank>
Rank: Unkn<intentionally left blank> own
Configured Clock Speed: <intentionally left blank>
Handle 0x0008, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0005
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: Top - Slot 2 (under)
Bank Locator: BANK 1
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Hynix/Hyundai
Serial Number: <intentionally left blank>
Asset Tag: <intentionally left blank>
Part Number: <intentionally left blank>
Rank: <intentionally left blank>
Configured Clock Speed: <intentionally left blank>
Handle 0x000A, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0005
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: Bottom-Slot 1(left)
Bank Locator: BANK 2
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Micron
Serial Number: <intentionally left blank>
Asset Tag: <intentionally left blank>
Part Number: <intentionally left blank>
Rank: <intentionally left blank>
Configured Clock Speed: <intentionally left blank>
Handle 0x000C, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0005
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: Top - Slot 1 (top)
Bank Locator: BANK 3
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Hynix/Hyundai
Serial Number: <intentionally left blank>
Asset Tag: <intentionally left blank>
Part Number: <intentionally left blank>
Rank: <intentionally left blank>
Configured Clock Speed: <intentionally left blank>
Hieruit kun je afleiden dat mijn laptop beschikt over 4 SODIMM’s van 4 GB DDR3 1600 MHz geheugen.
Andere opties zijn: bios, system, baseboard, chassis, processor, memory, cache, connector, slot.
dmidecode
moet uitgevoerd worden als root of met sudo
.
Videokaart informatie via ‘lspci’, en andere PCI-apparaten
Je lspci
gebruiken voor het opvragen van welke PCI-apparaten er zich in jouw computer bevinden. Bijvoorbeeld de videokaart:
$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GK107GLM [Quadro K2000M] (rev a1
Yep, ik werk nog met dezelfde laptop als in 2013 toen ik Debian 7.0 installeerde op deze laptop :-) .
Gebruik alleen lspci
om alle PCI devices weer te geven.
lscpu en /proc/cpuinfo, CPU architectuur weergeven
De opdracht lscpu is vergelijkbaar met lspci, alleen geeft het beknopte informatie weer over jouw CPU:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 58
Model name: Intel(R) Core(TM) i7-3840QM CPU @ 2.80GHz
Stepping: 9
CPU MHz: 1488.183
CPU max MHz: 3800.0000
CPU min MHz: 1200.0000
Voor het gemak een beetje geknipt in de uitvoer.
Je verkrijgt deze en vergelijkbare informatie ook vanuit het proc pseudo-bestandssysteem met cat
. Je krijgt dan de info per CPU-core:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i7-3840QM CPU @ 2.80GHz
stepping : 9
microcode : 0x1c
cpu MHz : 1250.976
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs :
bogomips : 5587.63
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
[...]
processor : 2
vendor_id : GenuineIntel
En uiteraard met dmidecode --type processor
. In tegenstelling tot dmidecode kun je cat /proc/cpuinfo
, en lscpu
gebruiken binnen Windows Subsystem for Linux 2 (WSL2).
Op Tweaking4All.nl vind je meer handige tips.
De Article werd vermeld op itfaq.nl