Python Linux Dmidecode, How to Obtain Hw Info by Parsing

Python Linux dmidecode, how to obtain HW info by Parsing?

Figured it out, by using the following we can obtain all data that I need:

import dmidecode

def getBIOS():
for v in dmidecode.bios().values():
if type(v) == dict and v['dmi_type'] == 0:
BIOSdict["Name"] = str((v['data']['Vendor']))
BIOSdict["BuildNumber"] = str((v['data']['Version']))
BIOSdict["SoftwareElementID"] = str((v['data']['BIOS Revision']))

We iterate the dmidecode.bios().values() to find each field of data. We can see which function to use by referencing the table below. Which is also located at this link.

We then check the type of 'v' to ensure its a dictionary (That's what I'm using in my case) and we check that the 'dmi_type' is the correct code for what we are searching for.

For example:

   Type   Information
----------------------------------------
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

Keyword Types
------------------------------
bios 0, 13
system 1, 12, 15, 23, 32
baseboard 2, 10
chassis 3
processor 4
memory 5, 6, 16, 17
cache 7
connector 8
slot 9

If we wanted to get the BIOS Info, we would then reference v['dmi_type'] == 0 this will return a dictionary. We can then create our own dict (in my case BIOSdict = [] ) and add the key and value as so:

BIOSdict["Name"] = str((v['data']['Vendor']))

Python, In linux obtain VGA specifications via lspci or HAL?

here is the command sample of lspci here. so basically you would call subprocess to access the command from python.

import subprocess

def find_vga():
vga = subprocess.Popen("lspci -v -s `lspci | awk '/VGA/{print $1}'`", shell=True)
return vga

print(find_vga())

OR

def find_vga():
vga = subprocess.check_output("lspci -v -s `lspci | awk '/VGA/{print $1}'`", shell=True, executable='/bin/bash')
return vga

print(find_vga())

Getting CPU or motherboard serial number?

You need to use the CPUID instruction.

CPUID

Most C compilers have some support for inline assembly, but you will need to know what you are doing.

How can I find out the total physical memory (RAM) of my linux box suitable to be parsed by a shell script?

If you're interested in the physical RAM, use the command dmidecode. It gives you a lot more information than just that, but depending on your use case, you might also want to know if the 8G in the system come from 2x4GB sticks or 4x2GB sticks.



Related Topics



Leave a reply



Submit