Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Получение информации об аппаратном обеспечении Linux-компьютера без использования отвертки

Источник: Finding Hardware Details of your Linux Machine without Using Screw Driver
Перевод: В.Костромин, 11.01.2007 г.

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

В этом небольшом руководстве мы научимся тому, как можно получить спецификацию вашего Linux- компьютера в командной строке. Дочитав это руководство до конца, вы сможете в течение минуты получить полный перечень всех компонент вашего компьютера с их характеристиками. Это может, например, помочь вам в поиске нужных драйверов и адресов служб поддержки для вашего оборудования.

Часть 1: Получение информации об оборудовании с помощью команды lspci

Утилита lspci предназначена для вывода информации о всех PCI-шинах в системе, а также о всех устройствах, присоединенных к этим шинам. По умолчанию она показывает краткий список таких устройств. Однако вы можете использовать многочисленные опции lspci для получения более подробной информации или информации, ориентированной на последующую обработку с помощью других программ.

[root@localhost ~]# /sbin/lspci
00:00.0 Host bridge: Intel Corporation 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82865G Integrated Graphics Controller (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2)
00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)
03:08.0 Ethernet controller: Intel Corporation 82562EZ 10/100 Ethernet Controller (rev 02)
....

Теперь я знаю, что у меня стоит графический чип Intel Corporation 82865G Integrated Graphics Controller и могу поискать драйвер для него в Интернет. Посмотрим, какую информацию содержит строка, соответствующая этому чипу :

Чтобы получить больше информации, вы можете воспользоваться опциями -v или -vv. Например, когда я задал команду lspci -v, я получил следующий результат:

00:02.0 VGA compatible controller: Intel Corporation 82865G Integrated Graphics Controller (rev 02) (prog-if 00 [VGA])
Subsystem: IBM Unknown device 0285
Flags: bus master, fast devsel, latency 0, IRQ 185
Memory at f0000000 (32-bit, prefetchable) [size=128M]
Memory at e8000000 (32-bit, non-prefetchable) [size=512K]
I/O ports at 1800 [size=8]
Capabilities: [d0] Power Management version 1

Утилита lspci вначале считывает информацию с PCI-шины, а потом дополнительную информцию ищет в собственной базе данных, которая находится в файле /usr/share/hwdata/pci.ids и содержит такие данные как идентификатор обрудования, производитель, устройства, классы и подклассы. Команда

[root@localhost ~]# cat /usr/share/hwdata/pci.ids | grep "82865G Integrated Graphics Controller"
82865G Integrated Graphics Controller

позволяет убедиться, что наше устройство тоже содержится в этой базе. Данный список оборудования поддерживается на страничке http://pciids.sourceforge.net, и вы можете использовать утилиту update-pciids для того, чтобы получить самую последнюю его версию.

Часть 2: Получение информации об оборудовании с помощью команды dmesg

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

Утилита lspci хорошо помогает при обнаружении PCI-устройств, однако нам часто требуется список всех устройств в системе. Используя dmesg мы можем просмотреть характеристики всех устройств, которые обнаружены нашей операционной системой.

[root@localhost ~]# dmesg | less
Normal zone: 59248 pages, LIFO batch:15
DMI present.
Allocating PCI resources starting at 20000000 (gap: 10000000:eec00000)
Detected 2793.055 MHz processor.
Built 1 zonelists. Total pages: 63344
Kernel command line: ro root=/dev/VolGroup00/LogVol00 rhgb quiet
Enabling fast FPU save and restore... done.
Initializing CPU#0
CPU 0 irqstacks, hard=c07ae000 soft=c078e000
Memory: 244136k/253376k available (2139k kernel code, 8732k reserved, 866k data, 240k init, 0k highmem)
.....

Как видите, dmesg выдает очень много данных, так что необходимо использовать grep, чтобы ограничить вывод именно теми данными, которые нас интересуют. Предположим, что в данный момент нас интересует информация о памяти, установленной в системе.

[root@localhost ~]# dmesg | grep -i memory
Memory: 244136k/253376k available (2139k kernel code, 8732k reserved, 866k data, 240k init, 0k highmem)
Freeing initrd memory: 2124k freed
Total HugeTLB memory allocated, 0
Non-volatile memory driver v1.2
agpgart: Detected 8060K stolen memory.
Freeing unused kernel memory: 240k freed
.....

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

Часть 3: Получение информации об оборудовании из /proc

Иногда вам может потребоваться получить информацию об оперативной памяти или центральном процессоре в реальном времени на работающей системе. Для того, чтобы сделать это, вы можете воспользоваться виртуальной файловой системой /proc. Может быть вы вспомните и об утилите top, но знайте, что она просто считывает данные из файловой системы /proc. Только помните, что не следует вносить какие-либо изменения в файлы, расположенные в каталоге /proc, можно только воспользоваться командой cat для просмотра этих файлов.

Выполнив команду ls в каталоге /proc, вы увидите различные каталоги и файлы, которые содержат информацию о вашей системе.

Давайте посмотрим, что в этих файлах содержится, начиная, например, с cpuinfo.

[root@localhost ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping : 9
cpu MHz : 2793.055
cache size : 512 KB
....

Давайте заглянем поглубже и откроем какую-нибудь папку. Перейдем, например, в папку ide и прочитаем информацию о моем жестком диске.

[root@localhost ~]# cat /proc/ide/ide0/hda/driver
ide-disk version 1.18
[root@localhost ~]# cat /proc/ide/ide0/hda/capacity
78156288
[root@localhost ~]# cat /proc/ide/ide0/hda/model
IC35L060AVV207-0

Часть 4: Получение дополнительной информации о вашем жестком диске, используя fdisk

На предыдущем этапе, используя /proc, мы получили только основную, но довольно ограниченную информацию о параметрах нашего жесткого диска. Теперь давайте получим более полные данные, используя доступную в Linux команду fdisk. С ее помощью можно получить информацию о разделах жесткого диска, объеме достуного пространства, объеме занятого пространства, свопе и многое еще.

Программа fdisk - это инструмент для работы с таблицей разбиения диска. Физические диски обычно разбиваются на несколько логических дисков, которые называются разделами диска. Информация о разбиении физического диска на разделы хранится в таблице разбиения диска, которая находится в нулевом секторе физического диска.

Чтобы посмотреть, какие разделы имеются на вашем диске, просто введите команду:

[root@localhost ~]# fdisk -l
Disk /dev/hda: 40.0 GB, 40016019456 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 4865 38973690 8e Linux LVM

Если у вас два или более дисков (например, hda и hdb), и вы хотите получить данные о конкретном диске, укажите в команде желаемый диск, например, fdisk -l /dev/hda

Часть 5 (ДОБАВЛЕНА по откликам читателей) : Вывод информации BIOS с помощью команды dmidecode

Утилита dmidecode выводит содержимое таблицы DMI (Desktop Management Interface) вашей системы в формате, предназначенном для восприятия человеком. Эта таблица содержит информацию, относящуюся к компонентам аппаратного обеспечения системы, а также сведения о версии BIOS и т.д. В выводе dmidecode не только содержится описание текущей конфигурации системы, но и приводятся данные о максимально допустимых значениях параметров, например, о поддерживаемых частотах работы CPU, максимально возможном объеме памяти и так далее.

Если я хочу ограничить выводимую информацию только какими определенными областями DMI, я могу сделать это, используя опцию ─ t и указав какого типа информация меня нтересует. Например, информация о процессоре имеет тип 4, а информация о памяти имеет в DMI тип 17.

Я надеюсь, что настоящее руководство поможет вам так же, как оно помогло одному моему другу, который устанавливал MythTV в систему на основе Fedora и до знакомства с этим руководством держал свой компьютер открытым, чтобы иметь возможность определять параметры некоторых устройств :)


Finding hardware details without using screwdriver

Спасибо за отличную и очень информативную статью. Теперь я могу, наконец, закрыть крышку корпуса на своем компьютере :-)
TonyH

Попробуй DMIDECODE

С помощью dmidecode вы можете получить гораздо больше информации, причем в одном отчете.
Без подписи

Интересно, но ...

В действительности возможно узнать гораздо больше о том, какой тип памяти используется в вашем компьтере, например, no. pins и скорость и тип ...
Скажем, если я сижу на работе и могу удаленно залогироваться на свой домашний компьютер смогу ли я собрать достаточно данных для того, чтобы определить возможность апгрейда моей оперативной память...?
Я пытлся однажды это сделать и не смог - я подобрался довольно близко к решению этой проблемы, у меня осталось на выбор всего два варианта для типа чипсета материнской платы, я наугад выбрал один из них и ... не угадал :-(!!
Без подписи

Попробуй что-нибудь еще!

lshw - отличное средство для этого.
Для него также есть GTK-интерфейс.
Без подписи

Другие хорошие утилиты

Попробуй еще dmidecode. В системах на основе RedHat/Fedora она обычно находится в каталоге /usr/sbin, а также доступна через портежи или в исходных кодах (www.nongnu.org/dmidecode/). Она многое расскажет тебе о твоей системе.

Для получения информации о дисках можно использовать smartd и smartctl.

-Christopher Arnold (arnoldch AT yahoo-inc DOT com)

lsusb и файловая система /sys

Не забудь просмотреть файловую систему /sys. Кое в чем информация может быть избыточной... но не все.

Для обнаружения USB-устройств есть lsusb.

sensors раскроет детали относительно чипа вашего ОЗУ.

dmesg: иногда информация оказывается перезаписана более новыми сообщениями ядра. Если так, смотри /var/log/boot.log.

В SUSE системах: вы имеете инструмент с названием 'yast2' для выполнения обычных администраторских задач. Он выдает и сведения об аппаратном обеспечении.

Без подписи

А как насчет dmidecode?

Взято из man-страницы по dmidecode.

dmidecode - это инструмент для вывода содержимого DMI-таблицы (иногда говорят SMBIOS-таблицы) вашего компьютера в формате, приспособленном для восприятия человеком. Эта таблица содержит описание компонент аппаратного обесечения системы, а также другоую полезную информацию, например, серийные номера и версию BIOS.

Rene

dmidecode

Выдает информацию bios на работающей ОС.
Работает не на всех аппаратных платформах.

Без подписи

Еще

смотри lshw и dmidecode

Без подписи

Еще одна ...

Не забудь про lsusb! Очень полезная утилита. Просто установи пакет usbutils из своего дистрибутива (есть по крайней мере в Ubuntu и Fedora, вероятно в других тоже).

Без подписи

hdparm

Для получения детальной информации о жестких дисках можно использовать hdparm.

Без подписи

А что же HAL?

Надо бы упомянуть еще, что если используется современная графическая оболочка (a modern desktop environment), команда lshal выдаст массу информации из HAL (the Hardware Abstraction Layer, иначе говоря, проект Utopia).

Без подписи

lshw

Вы можете еще воспользоваться утилитой lshw, которая позволяет вывести информацию от всех этих источников в виде единого списка (можно на дисплей).

Без подписи


Обсудить статью на форуме

Другие статьи о мониторинге аппаратуры в Linux