- Получаем информацию об оборудовании в Linux
- Информация о процессоре (CPU)
- Информация о PCI устройствах (информация о видео-карте)
- Информация об оперативной памяти (ОЗУ)
- Информация о жестких дисках
- Информация о USB устройствах и шинах USB
- Неконсольные программы
- Дополнительная информация
- Как узнать номер устройства linux
- Примеры использования
- Вывод списка USB-устройств
- Вывод подробной информации о USB-устройствах
- Вывод информации о заданных USB-шинах и устройствах
Получаем информацию об оборудовании в Linux
Рассмотрим несколько полезных команд и утилит с помощью которых можно получить информацию об оборудовании в Linux. Такая потребность возникает, например, тогда, когда вам нужно установить драйвер для какого-нибудь устройства компьютера и вам нужно знать его точное название. Или, например, вы хотите получить информацию о занимаемой памяти или ресурсах компьютера.
Информация о процессоре (CPU)
Получить всю необходимую информацию о центральном процессоре в Linux можно выполнив в терминале команду:
Чтобы определить является ли ваш процессор 32-х или 64-битным нужно просмотреть флаги, которые указаны в выводе команды. Если среди флагов присутствует lm (long mode), это означает, что ваш процессор 64-битный. Например, при выполнении команды cat /proc/cpuinfo мы можем получить следующие флаги:
flags: fpu vme de acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon .
Информация о PCI устройствах (информация о видео-карте)
С помощью команды lspci можно вывести всю информацию о PCI устройствах:
Эту команду часто используют, чтобы получить информацию о видео-карте. Так как вывод команды lspci достаточно большой, то можно воспользоваться командой grep, чтобы задать условие поиска. Например, если мы знаем, что у нас видео-карта от Nvidia, тогда можно воспользоваться командой:
И в результате получить что-нибудь вроде:
01:00.0 VGA compatible controller: nVidia Corporation G72M [Quadro NVS 110M/GeForce Go 7300] (rev a1)
Обратите внимание на то, что команда grep чувствительна к регистру символов и поэтому, если вы с первого раза не нашли то, что искали, то стоит попробовать другое написание, например, nvidia, NVIDIA или просто idia. Аналогично можно искать информацию в выводе любых других команд, добавляя к команде: «| grep строка-поиска.
Информацию о версии драйвера для видео-карт Nvidia в Linux можно получить выполнив:
cat /proc/driver/nvidia/version
Информация об оперативной памяти (ОЗУ)
Чтобы получить информацию об объеме, а также о количестве свободной и занятой оперативной памяти можно воспользоваться командой:
Информацию о виртуальной памяти можно получить командой vmstat:
Если вам нужна более детальная информация о процессах, занимающих оперативную память, о загруженности процессора (CPU), тогда можно использовать утилиты Top или htop. Утилита top как правило всегда присутствует в Linux. Для ее запуска просто выполните:
Информация о жестких дисках
Информация о разделах жесткого диска в Linux:
Информация о монтированных разделах, количество свободной и занятой памяти:
Есть еще одна полезная команда du, которая выводит информацию о размере каждого файла в текущей и во вложенных директориях. Если вы хотите получить информацию обо всех файлах в текущей директории выполните команду без параметров:
В качестве параметра можно задать имя файла, например, чтобы узнать размер файла abc.bin выполните:
Информация о USB устройствах и шинах USB
Для вывода информации о шинах USB и о подключенных USB устройствах используется команда lsusb:
Неконсольные программы
Рассмотрим несколько графических программ, которые помогут при работе с оборудованием.
В среде рабочего стола Gnome есть графическая утилита System monitor (Системный монитор). Она выводит информацию об использовании процессора, о запущенных процессах (приложениях), информацию о жестких дисках, а также выводит графики, включая использование сети. Из командой строки ее можно запустить выполнив:
Для работы с жесткими можно воспользоваться программой GParted.
Дополнительная информация
Напоследок обязательно стоит упомянуть об очень важной команде lshw, которая выводит практически всю информацию о вашем компьютере. Команду lshw нужно запускать под пользователем root:
Чтобы вывести краткую информацию используется ключ -short:
Получить более подробную информацию о командах, описанных в статье, можно используя справочную систему Linux. Для этого в консоли нужно выполнить:
Например, чтобы получить всю информацию о команде du, выполните команду:
Как узнать номер устройства linux
Команда lsusb позволяет задействовать одноименную утилиту, предназначенную для вывода информации о USB-шинах и подключенных к ним устройствах. Каждое из устройств имеет пару 16-битных идентификаторов: идентификатор производителя (Vendor ID) и идентификатор устройства (Device ID), которые следует использовать для идентификации устройств и поиска драйверов в случае их отсутствия в ядре ОС, а также несколько дополнительных идентификаторов, устанавливаемых производителем. В составе дистрибутивов Linux имеется файл базы данных устройств, содержащий названия устройств с известными идентификаторами. Данная команда крайне полезна для идентификации и диагностики устройств компьютера. Она выводит результаты в формате списка, который может фильтроваться с помощью утилиты grep.
Базовый синтаксис команды выглядит следующим образом:
Утилита может вызываться как без параметров, так и с ними. Наиболее полезными параметрами являются параметр -t, предназначенный для вывода информации в древовидном формате, параметр -v для вывода подробной информации об устройствах, а также параметры -s и -d для вывода информации об устройствах на заданных шинах и с заданными идентификаторами соответственно.
Примеры использования
Вывод списка USB-устройств
Для вывода списка USB-устройств достаточно использовать утилиту без каких-либо параметров. Прав суперпользователя для выполнения команды не требуется.
$ lsusb
Bus 002 Device 005: ID 12d1:1436 Huawei Technologies Co., Ltd. Broadband stick
Bus 002 Device 003: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Bus 002 Device 002: ID 214b:7250 USB2.0 HUB
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 0000:3821 SiliconWin mouse
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 04f3:0103 Elan Microelectronics Corp. ActiveJet K-2024 Multimedia Keyboard
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Вывод имеет строго регламентированную структуру. По сути, параметры устройств разделены пробелами. Возьмем последнюю строку в качестве примера:
- Номер шины: Bus 003
- Номер устройства на шине: Device 001
- Идентификаторы производителя и устройства: 1d6b:0001
- Название устройства: Linux Foundation 1.1 root hub
Несложно убедиться, что все строки имеют схожий формат. При этом в списке отражена информация как об обычных USB-устройствах (таких, как клавиатуры и мыши), так и о специализированных устройствах (таких, как хабы).
Вывод подробной информации о USB-устройствах
Для того, чтобы вывести подробную информацию о USB-устройствах, следует использовать комбинацию параметр -v:
$ lsusb -v
…
Bus 002 Device 003: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Couldn’t open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.01
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x148f Ralink Technology, Corp.
idProduct 0x7601 MT7601U Wireless Adapter
bcdDevice 0.00
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x004a
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 160mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 8
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x08 EP 8 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x07 EP 7 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x09 EP 9 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
…
Данный вывод является крайне обширным и содержит огромное количество параметров конфигурации USB-устройств. Он может использоваться для диагностики и идентификации устройств, причем в случае исполнения команды от лица суперпользователя, информации будет еще больше (обратите внимание на предупреждение в начале вывода).
Вывод информации о заданных USB-шинах и устройствах
Для того, чтобы вывести информацию о заданной USB-шине и устройствах на ней достаточно использовать параметр -s и передать утилите идентификатор интересующей шины:
$ lsusb -s 003:
Bus 003 Device 002: ID 04f3:0103 Elan Microelectronics Corp. ActiveJet K-2024 Multimedia Keyboard
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
$ lsusb -s 003:002
Bus 003 Device 002: ID 04f3:0103 Elan Microelectronics Corp. ActiveJet K-2024 Multimedia Keyboard
При использовании лишь идентификатора шины следует использовать двоеточие в конце идентификатора.
Что касается информации об устройствах, то совместно с параметром -d может использоваться как идентификатор производителя:
$ lsusb -d 04f3:
Bus 003 Device 002: ID 04f3:0103 Elan Microelectronics Corp. ActiveJet K-2024 Multimedia Keyboard
Так и идентификатор устройства:
$ lsusb -d :0103
Bus 003 Device 002: ID 04f3:0103 Elan Microelectronics Corp. ActiveJet K-2024 Multimedia Keyboard
Не стоит забывать о двоеточии, которое указывает на используемый идентификатор: идентификатор производителя должен иметь двоеточие в конце, идентификатор устройства — в начале.