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
Shutting Down Computer (Linux) Using Python
R Expand.Grid() Function in Python
Combine Two Pandas Data Frames (Join on a Common Column)
How to Activate an Anaconda Environment
Why Is Tkinter Entry's Get Function Returning Nothing
Pandas Dataframe Get First Row of Each Group
Partial Coloring of Text in Matplotlib
Reading an Excel File in Python Using Pandas
How to Connect to Tor Browser Using Python
Why Can Tuples Contain Mutable Items
Creating Same Random Number Sequence in Python, Numpy and R
How to Define a Threshold Value to Detect Only Green Colour Objects in an Image with Python Opencv
Extracting Text from a PDF File Using PDFminer in Python
Unnest (Explode) a Pandas Series
Importerror: No Module Named Pil