I'm using Fedora 17 64bit, installed dmidecode and python-dmidecode, in my search for a doc on how to use python-dmidecode, i've yet to find anything. I found an example while browsing the source but nothing else. Anyone familiar with this module and how to access it in python? Any documentation you can reference me to would be helpful.
I'm trying to obtain hardware specifications in Fedora 17:
In C# using Management namespace, I was able to obtain all the following:
Will it be possible to obtain the same In Linux via Python?
BIOS
- Name
Motherboard
- Manufacturer
- Model
CPU
- Name
- Architecture
- NumberOfCores
- CurrentClockSpeed
Memory
- Name
- Manufacturer
- MemoryType
- Speed
- DeviceLocator
- Capacity
- Model
Video
- Name
- VideoProcessor
- AdapterRam
- VideoMemoryType
- VideoArchitecture
- VideoMode
Network
- Name
- ProductName
- Manufacturer
- PhysicalAdapter
HardDrive
- Index
- Description
- InterfaceType
- Manufacturer
- Model
- Size
- Partitions
解决方案
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']))