我正在使用Fedora 17 64bit,安装了dmidecode和python- dmidecode,在寻找有关如何使用python- dmidecode的文档时,我还没有找到任何东西。我在浏览源代码时发现了一个示例,但仅此而已。任何人熟悉此模块以及如何在python中访问它?您可以参考我的任何文档都会有所帮助。
我正在尝试获取Fedora 17中的硬件规格:
在使用管理命名空间的C#中,我能够获得以下所有内容: 是否可以通过Python在Linux中获得相同的东西?
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
弄清楚了,通过使用以下内容,我们可以获得我需要的所有数据:
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']))
我们迭代dmidecode.bios().values()来查找数据的每个字段。通过参考下表,我们可以查看要使用的功能。这也位于此链接中。
dmidecode.bios().values()
然后,我们检查的类型'v'以确保其为a dictionary (在我的情况下,这就是我所使用的), 然后检查'dmi_type‘是否是所搜索内容的正确代码。
'v'
dictionary
'dmi_type
例如:
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
如果我们想获取BIOS信息,则可以参考v['dmi_type'] == 0该参考,这将返回一个字典。然后,我们可以创建自己的字典(以我BIOSdict = []为例),并按以下方式添加键和值:
v['dmi_type'] == 0
BIOSdict = []
BIOSdict["Name"] = str((v['data']['Vendor']))