Получение сведений об обрудовании в командной строке Linux



    Наиболее полную информацию о компьютерном оборудовании в Linux, можно получить используя утилиту dmidecode, отображающую данные из структуры SMBIOS, включающую таблицы, содержащие записи о каждом из устройств, обнаруженных в данный момент времени. Для использования возможностей утилиты требуются права root

Утилита dmidecode - отображение содержимого таблиц DMI компьютера.



Интерфейс DMI ( Desktop Management Interface ) - это интеpфейс упpавления настольными компьютерными системами, представляющий собой набор программных и аппаратных средств для сбора, хранения и отображения данных об оборудовании компьютера. Спецификация DMI была разработана в 1996 г. и дорабатывалась по мере развития компьютерных систем. Поддержка интерфейса DMI встроена в BIOS всех современных материнских плат, а также осуществляется через интерфейс API в прикладных программных продуктах. Для взаимодействия с интерфейсом DMI, в BIOS материнских плат была добавлена спецификация DMIBIOS, которая с 1999 года получила название SMBIOS - System Management BIOS - системное управление BIOS. Спецификации различных версий SMBIOS опубликованы на сайте объединения Distributed Management Task Force ( DMTF ) :

Страница спецификаций SMBIOS на сайте DMTF

В соответствии со спецификацией SMBIOS, информация DMI об оборудовании хранится в виде базы данных ( DMI Pool Data ), точка входа в которую определяется в структуре SMBIOS. Начальная запись содержит признак базы - строку из 5 байт _DMI_, контрольную сумму, адрес и размер.

Утилита dmidecode позволяет извлечь записи из базы данных DMI и отобразить их в требуемом виде. Командная строка:

dmidecode [OPTIONS]

Параметры командной строки:

-d, --dev-mem FILE - задать устройство для чтения данных DMI ( по умолчанию - /dev/mem)

-h, --help - отобразить справку.

-q, --quiet - минимальная детализация отображаемой информации DMI

-s, --string KEYWORD - отображать только данные DMI, соответствующие введенному ключевому слову. Перечень допустимых ключевых слов можно получить введя dmidecode -s

-t, --type TYPE - отображать только данные указанных типов. Перечень типов можно получить по команде dmidecode -t -u, --dump - не расшифровывать получаемые данные. Отображаются только заголовки записей и шестнадцатеричные значения полей.

--dump-bin FILE - запись дампа данных DMI в файл.

--from-dump FILE - считывание и обработка данных из ранее сохраненного дампа данных DMI.

-V, --version - отобразить версию программы и завершиться.

При запуске dmidecode без параметров, отображается версия программы, общая информация базы DMI, и расшифрованное содержимое отдельных записей. Пример общей информации:

# dmidecode 2.12
SMBIOS 2.4 present.
364 structures occupying 17092 bytes.
Table at 0x000E0010.


Отображается версия программы, версия SMBIOS, количество записей и объем данных DMI, а также начальный адрес структуры DMI (0x000E0010 ) .

Долее отображается расшифрованная информация отдельных записей :

Handle 0x0001, DMI type 38, 20 bytes
IPMI Device Information
	Interface Type: KCS (Keyboard Control Style)
	Specification Version: 2.0
	I2C Slave Address: 0x10
	NV Storage Device: Not Present
	Base Address: 0x0000000000000CA2 (I/O)
	Register Spacing: Successive Byte Boundaries

Handle 0x0002, DMI type 1, 27 bytes
System Information
	Manufacturer: Intel Corporation
	Product Name: S5520UR
	Version: ....................
	Serial Number: ............
	UUID: 817CDC18-2442-11E0-BD3C-001E670982C8
	Wake-up Type: AC Power Restored
	SKU Number: Not Specified
	Family: Not Specified

Handle 0x0003, DMI type 2, 16 bytes
Base Board Information
	Manufacturer: Intel Corporation
	Product Name: S5520UR
	Version: E22554-751
	Serial Number: BZUB10309846
	Asset Tag: ....................
	Features:
		Board is a hosting board
		Board is replaceable
	Location In Chassis: Not Specified
	Chassis Handle: 0x0004
	Type: Motherboard
	Contained Object Handles: 0

Handle 0x0004, DMI type 3, 22 bytes
Chassis Information
	Manufacturer: ...............................
	Type: Rack Mount Chassis
	Lock: Not Present
	Version: ..................
	Serial Number: ..................
	Asset Tag: ....................
	Boot-up State: Safe
	Power Supply State: Safe
	Thermal State: Safe
	Security Status: Unknown
	OEM Information: 0x01000181
	Height: 1 U
	Number Of Power Cords: 1
	Contained Elements: 0

Handle 0x0005, DMI type 0, 24 bytes
BIOS Information
	Vendor: Intel Corp.
	Version: S5500.86B.01.00.0058.061720111128
	Release Date: 06/17/2011
	Address: 0xF0000
	Runtime Size: 64 kB
	ROM Size: 8192 kB
	Characteristics:
		PCI is supported
		PNP is supported
		BIOS is upgradeable
		BIOS shadowing is allowed
		Boot from CD is supported
		Selectable boot is supported
		EDD is supported
		3.5"/2.88 MB floppy services are supported (int 13h)
		Print screen service is supported (int 5h)
		8042 keyboard services are supported (int 9h)
		Serial services are supported (int 14h)
		CGA/mono video services are supported (int 10h)
		ACPI is supported
		USB legacy is supported
		LS-120 boot is supported
		ATAPI Zip drive boot is supported
		Function key-initiated network boot is supported
		Targeted content distribution is supported
	BIOS Revision: 17.18
	Firmware Revision: 0.0


Информация каждой записи начинается с дескриптора Handle, типа записи DMI Type и ее размера в байтах. Утилита извлекает данные записей, декодирует их и представляется в виде обычного текста, позволяющего получить сведения о текущем оборудовании компьютера. Как видно из приведенных результатов выполнения dmidecode, объем отображаемой информации вполне достаточен для получения практически всех технических характеристик используемого компьютерного оборудования.

Нередко требуется получить не всю информацию, содержащуюся в таблицах DMI, а только ту, что имеет отношение к конкретному устройству или классу устройств, для чего предусмотрена возможность указания типа данных с использованием параметра -t. В качестве типа данных может быть использовано или числовое значение дескриптора Handle, или специальное ключевое слово. Допустимые ключевые слова для типов данных, задаваемых параметром -t :

bios - сведения о BIOS

system - сведения о переключателях системной платы.

baseboard - сведения о материнской плате.

chassis - сведения о переключателях и датчиках шасси.

processor - сведения о центральном процессоре ( о процессорах для многопроцессорных систем ) .

memory - сведения об оперативной памяти.

cache - сведения о кэш-памяти.

connector - сведения о разъемах контроллеров периферийных устройств.

slot - сведения о разъемах PCI/PCI-Express

Ниже приведены примеры выполнения команды dmidecode для разных типов данных.

dmidecode -t processor - отобразить данные DMI о процессорах.

# dmidecode 2.10
SMBIOS 2.5 present.

Handle 0x0038, DMI type 4, 40 bytes
Processor Information
	Socket Designation: CPU1
	Type: Central Processor
	Family: Xeon
	Manufacturer: Intel(R) Corporation
	ID: C2 06 02 00 FF FB EB BF
	Signature: Type 0, Family 6, Model 44, Stepping 2
	Flags:
		FPU (Floating-point unit on-chip)
		VME (Virtual mode extension)
		DE (Debugging extension)
		PSE (Page size extension)
		TSC (Time stamp counter)
		MSR (Model specific registers)
		PAE (Physical address extension)
		MCE (Machine check exception)
		CX8 (CMPXCHG8 instruction supported)
		APIC (On-chip APIC hardware supported)
		SEP (Fast system call)
		MTRR (Memory type range registers)
		PGE (Page global enable)
		MCA (Machine check architecture)
		CMOV (Conditional move instruction supported)
		PAT (Page attribute table)
		PSE-36 (36-bit page size extension)
		CLFSH (CLFLUSH instruction supported)
		DS (Debug store)
		ACPI (ACPI supported)
		MMX (MMX technology supported)
		FXSR (Fast floating-point save and restore)
		SSE (Streaming SIMD extensions)
		SSE2 (Streaming SIMD extensions 2)
		SS (Self-snoop)
		HTT (Hyper-threading technology)
		TM (Thermal monitor supported)
		PBE (Pending break enabled)
	Version: Intel(R) Xeon(R) CPU           X5670  @ 2.93GHz
	Voltage: 1.2 V
	External Clock: 133 MHz
	Max Speed: 4000 MHz
	Current Speed: 1600 MHz
	Status: Populated, Enabled
	Upgrade: Socket LGA1366
	L1 Cache Handle: 0x003A
	L2 Cache Handle: 0x003B
	L3 Cache Handle: 0x003C
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 6
	Core Enabled: 6
	Thread Count: 12
	Characteristics:
		64-bit capable

Handle 0x003D, DMI type 4, 40 bytes
Processor Information
	Socket Designation: CPU2
	Type: Central Processor
	Family: Xeon
	Manufacturer: Intel(R) Corporation
	ID: C2 06 02 00 FF FB EB BF
	Signature: Type 0, Family 6, Model 44, Stepping 2
	Flags:
		FPU (Floating-point unit on-chip)
		VME (Virtual mode extension)
		DE (Debugging extension)
		PSE (Page size extension)
		TSC (Time stamp counter)
		MSR (Model specific registers)
		PAE (Physical address extension)
		MCE (Machine check exception)
		CX8 (CMPXCHG8 instruction supported)
		APIC (On-chip APIC hardware supported)
		SEP (Fast system call)
		MTRR (Memory type range registers)
		PGE (Page global enable)
		MCA (Machine check architecture)
		CMOV (Conditional move instruction supported)
		PAT (Page attribute table)
		PSE-36 (36-bit page size extension)
		CLFSH (CLFLUSH instruction supported)
		DS (Debug store)
		ACPI (ACPI supported)
		MMX (MMX technology supported)
		FXSR (Fast floating-point save and restore)
		SSE (Streaming SIMD extensions)
		SSE2 (Streaming SIMD extensions 2)
		SS (Self-snoop)
		HTT (Hyper-threading technology)
		TM (Thermal monitor supported)
		PBE (Pending break enabled)
	Version: Intel(R) Xeon(R) CPU           X5670  @ 2.93GHz
	Voltage: 1.2 V
	External Clock: 133 MHz
	Max Speed: 4000 MHz
	Current Speed: 1600 MHz
	Status: Populated, Enabled
	Upgrade: Socket LGA1366
	L1 Cache Handle: 0x003F
	L2 Cache Handle: 0x0040
	L3 Cache Handle: 0x0041
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 6
	Core Enabled: 6
	Thread Count: 12
	Characteristics:
		64-bit capable
dmidecode -t connector - отобразить данные DMI, относящиеся к типу "connector", т.е информацию о разъемах периферийного оборудования.

Handle 0x0009, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J7A2
	Internal Connector Type: None
	External Reference Designator: USB 1
	External Connector Type: Access Bus (USB)
	Port Type: USB

Handle 0x000A, DMI type 8, 9 bytes
Port Connector Information
	Internal Reference Designator: J6A2
	Internal Connector Type: None
	External Reference Designator: NIC 1
	External Connector Type: RJ-45
	Port Type: Network Port


При использовании числовых значений дескрипторов , тип данных DMI можно указывать в соответствии с таблицей :

Type Description
0 BIOS Information
1 System Information
2 Baseboard (or Module) Information
3 System Enclosure or Chassis
4 Processor Information
5 Memory Controller Information (Obsolete)
6 Memory Module Information (Obsolete)
7 Cache Information
8 Port Connector Information
9 System Slots
10 On Board Devices Information
11 OEM Strings
12 System Configuration Options
13 BIOS Language Information
14 Group Associations
15 System Event Log
16 Physical Memory Array
17 Memory Device
18 32-Bit Memory Error Information
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 (BIS) Entry Point
32 System Boot Information
33 64-Bit Memory Error Information
34 Management Device
35 Management Device Component
36 Management Device Threshold Data
37 Memory Channel
38 IPMI Device Information
39 System Power Supply
40 Additional Information
41 Onboard Devices Extended Information
42 Management Controller Host Interface
126 Inactive
127 End-of-Table
128-255 Available for system- and OEM- specific information



Возможно указание нескольких номеров дескрипторов в одной команде:

dmidecode -t 4,6 - отобразить содержимое записей DMI для процессора ( тип 4 ) и модулей памяти ( тип 6)


Совокупность выводимых утилитой данных позволяет определить параметры оборудования, которые не отображаются в явном виде. Например, следующая информация о процессоре

Core Count: 6
Core Enabled: 6
Thread Count: 12


говорит о том, что включен режим Hyper-threading. Если бы он был выключен, то значение Thread Count совпадало бы со значением Core Enabled






Утилита lshw – отобразить состав оборудования компьютера.



Утилита lshw ( Hardware Lister ) менее информативна, чем рассмотренная выше dmidecode, но позволяет получить сведения об оборудовании компьютера в различных форматах, в т.ч. в XML и HTML, а также имеет поддержку графического интерфейса пользователя ( GUI ). Утилита использует данные из таблиц DMI, конфигурационных файлов, модулей ядра и драйверов.

Формат командной строки:

lshw [-format] [-options ...]
lshw –version


Параметры командной строки:

-version - отобразить информацию о версии программы.

-format - формат выводимых данных. Допустимые форматы:

-html - вывести информацию об оборудовании компьютера в формате HTML
-xml - вывести информацию об оборудовании компьютера в формате XML
-short - отобразить список устройств в кратком формате, без описаний.
-businfo - отобразить информацию о шинах .
-X - использовать графический интерфейс

-options - дополнительные параметры:

-dump OUTFILE - выдать дамп информации в файл в формате SQLite.
-class CLASS - отобразить только информацию об устройствах данного класса.
-C CLASS - то же, что и '-class CLASS'
-c CLASS - то же, что и '-class CLASS'
-disable TEST- не использовать данные о проверке оборудования. Поле “test” может принимать значения
dmi - для расширения DMI/SMBIOS
              extensions,
spd – для памяти с параметрами SPD (Serial  Presence  Detect), 
memory – для запоминающих устройств
cpuinfo – для определяемых ядром типов процессоров
cpuid – для идентификатора процессора,
pci – для  PCI/AGP,
isapnp, pcmcia, ide ,  usb ,scsi network – для соответствующих интерфейсов.

-enable TEST - использовать тип проверки, как и в предыдущем случае.
-quiet - не отображать состояние устройства.
-sanitize - удалить из вывода потенциально опасную информацию, как адреса, серийные номера и т.п.
-numeric - отображать числовые идентификаторы для периферийных устройств.


Примеры испорльзования:

lshw - отобразить полную информацию об оборудовании в текстовом формате.

lshw –xml -отобразить информацию в XML-формате.

lshw –html > hardware.html - вывести информацию об оборудовании в формате HTML в файл hardware.html

lshw –dump /tmp/lshwsql - выполнить выгрузку информации об оборудовании в файл /tmp/lshwsql в формате SQLite

lshw -class network - отобразить информацию о сетевых устройствах. Допустимые классы устройств можно узнать по результатам выполнения команд lshw –short или lshw –businfo

lshw -c storage- отобразить информацию об устройствах хранения данных ( класса ”storage” )

lshw –C processor –disable dmi - вывести информацию о процессорах без использования данных dmi Для сравнения, попробуйте выполнить данную команду без параметра -disable dmi

lshw –X - запустить утилиту с поддержкой графического интерфейса.

”Графический


Для просмотра данных об устройствах, необходимо выполнить двойной щелчок мышкой на выбранном элементе древовидной структуры.


Прочие команды Linux для получения сведений об оборудовании .



Некоторые сведения об оборудовании можно получить из файлов каталога /proc:

cat /proc/devices - информация о типах устройств.

cat /proc/diskstats - информация о дисковых устройствах.

cat /proc/dma - информация о режиме работы контроллера прямого доступа к памяти.

cat /proc/iomem - информация об адресах, используемых контроллерами ввода-вывода.

cat /proc/ioports - информация о портах ввода-вывода.

cat /proc/meminfo - информация об оперативной памяти.

cat /proc/cpuinfo - информация о процессорах..

Кроме того, существуют специальные команды для отображения информации об отдельных типах устройств:

lscpu - отобразить информацию о процессорах.

lshal - отобразить информацию об оборудовании в виде дампа глобального списка устройств ( Global Device List ).

lsusb - отобразить информацию о USB-устройствах.

lsscsi - отобразить информацию об устройствах SCSI.

lspci - отобразить информацию об устройствах на шинах PCI / PCI - Express.

lspcmcia - отобразить информацию об устройствах на шине PCMCIA.

lsblk - отобразить информацию о блочных устройствах (гибких и жестких дисках, разделах и точках монтирования).

Информация, получаемая с помощью вышеперечисленных команд, носит более общий характер, по сравнению с той, что может быть получена с помощью утилиты dmidecode. Для сравнения, пример информации о процессорах, полученной при использовании команды lscpu


Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                24
Thread(s) per core:    2
Core(s) per socket:    6
CPU socket(s):         2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 44
Stepping:              2
CPU MHz:               1596.430
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              12288K
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22
NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23


Как видно из приведенной информации, для получения детальных технических характеристик оборудования компьютера, наиболее приемлемы данные, получаемые в результате выполнения утилиты dmidecode, а для отображения общих характеристик процессоров - команда lscpu. Например, в скриптах, при использовании в цепочке с командой grep, можно выделять отдельные элементы из вывода lscpu:

lscpu | grep L2 - получить размер кэш второго уровня процессора.

lscpu | grep Arch - получить информацию об архитектуре процессора.

По теме оборудования в Linux также имеются стантьи:

Управление серверными платформами с использованием интерфейса IPMI

Оценка технического состояния жесткого диска по данным S.M.A.R.T





Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой "Поделиться"










В начало страницы       |       На главную страницу сайта


Рейтинг@Mail.ru Яндекс.Метрика