И какое же у меня оборудование?

Nov 18, 2010 By Joey Bernard
in Hardware HOW-TOs

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

Однако, в этом месяце я расскажу вам об инструментах, которые позволяют довольно побробно разобраться с железными внутренностями.

И первая утилитка, которую мы рассмотрим, это lshw. Если запустите её от простого пользователя, поступит сообщение, что нужно запускаться от суперпользователя. Попробуйте снова с sudo lshw.

Должны появится многие экраны информации о вашей системе. Первая секция содержит общую информацию и должна выглядеть примерно как это:


jbernard-eeepc            
    description: Notebook
    product: 700
    vendor: ASUSTeK Computer INC.
    version: 0129
    serial: EeePC-1234567890
    width: 32 bits
    capabilities: smbios-2.5 dmi-2.5 smp-1.4 smp
    configuration: boot=normal chassis=notebook 
    ↪cpus=1 uuid=XXXXXX-XXXXX-XXXXX-XXXXX

Такое я получаю, запуская команду на своем ASUS EeePC. Тут можно найти производителя (ASUSTeK), версию BIOS (0129), и тот факт, что мы имеем 32-битную машину с одним центральным процессором.

Ещё больше информации заключено в более развернутые категории:


core
   firmware - motherboard and BIOS information
   cpu - CPU information
      cache - cache information
   memory - memory information
      bank - specific bank memory information
   pci - PCI bus information
      display - PCI display adapter
      multimedia - PCI audio adapter
      pci - other PCI devices
      network - PCI network adapter
   usb - USB devices
   ide - IDE information
      disk - individual disks
         volume - volumes on this disk

Для представления, насколько подробной может быть информация, заглянем в секцию описания памяти моего EeePC:


*-memory
     description: System Memory
     physical id: 1f
     slot: System board or motherboard
     size: 512MiB
   *-bank
        description: DIMM DDR2 Synchronous 400 MHz (2.5 ns)
        product: PartNum0
        vendor: Manufacturer0
        physical id: 0
        serial: SerNum0
        slot: DIMM0
        size: 512MiB
        width: 64 bits
        clock: 400MHz (2.5ns)

Таким образом, lshw - это утилита, которая выводит всё, что может собрать о железе, за один шаг. Если же нужны сведения о чём-нибудь одном, или нужно использовать полученную информацию в скриптах, то целая пригоршня средств для этого к вашим услугам.

Допустим, нужно посмотреть сведения о процессоре. Команда lscpu покажет что-то вроде такого:


Architecture:          i686
CPU op-mode(s):        32-bit
CPU(s):                1
Thread(s) per core:    1
Core(s) per socket:    1
CPU socket(s):         1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 13
Stepping:              8
CPU MHz:               571.427

Из этого вывода можно извлечь производителя, разрядность процессора, точную модель, также как и текущую частоту.

Если, например, вы хотите подробно выяснить, поддерживается ли ваша графическая карта Х-сервером, или нужны сторонние драйвера, можно использовать lspci. Эта утилита покажет список всех подключенных к PCI-шине устройств. Вывод будет примерно следующим:


00:02.0 VGA compatible controller: Intel Corporation 
 ↪Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04)
00:02.1 Display controller: Intel Corporation 
 ↪Mobile 915GM/GMS/910GML Express Graphics Controller (rev 04)

Отсюда видно, что в EeePC установлен видеоконтроллер Intel. Поместите информацию в поисковую форму Google и выясните, как наилучшим образом настроить графику. Заодно узнаете побольше о своем графическом ускорителе.

Для просмотра USB устройств аналогичным образом используется lsusb. На EeePC установлен SD-диск, поэтому я вижу такую строку:

Bus 001 Device 002: ID 0951:1606 Kingston Technology

Для исследования дисковой подсистемы используется утилита blkid. Она выводит информацию о всех файловых системах. Формат вывода такой:


/dev/sda1: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext2" 
/dev/sda2: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="swap" 
/dev/sda3: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext2" 
/dev/sdb1: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext2" 

Видно, какие блочные устройства используются и какие на них файловые системы. Идентификаторы устройств с успехом можно использовать в конфигурационных файлах GRUB и GRUB2, а также в /etc/fstab вместо имен устройств.

Для проверки, каким образом ядро задействует доступные устройства, используйте команду lsmod. Поскольку множество драйверов устройств компилируется в виде модулей ядра, мы увидим список подгруженных модулей.


agpgart                31788  2 drm,intel_agp
lp                      7028  0 
video                  17375  1 i915
output                  1871  1 video

Например, мы видим, что модуль agpgart имеет размер 31788 байт и в свою очередь использует модули drm и intel_agp.

Теперь вы можете получить от своего оборудования всё, на что оно способно. Если найдете другие утилиты для описанной задачи, сообщите мне о них.

Назад