Ключевые слова:hardware, linux, lsof, dmesg, lspci, pci, proc, bios, disk, dmi, (найти похожие документы)
From: В.Костромин
Date: Sun, 23 Feb 2008 17:02:14 +0000 (UTC)
Subject: Получение информации об аппаратном обеспечении Linux-компьютера без использования отвертки
Оригинал: http://rus-linux.net/kos.php?name=papers/hwmon/hwmon.koi
Источник: Finding Hardware Details of your Linux Machine without Using Screw Driver
Перевод: В.Костромин
Многие неопытные пользователи 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 и до знакомства с этим руководством держал свой
компьютер открытым, чтобы иметь возможность определять параметры
некоторых устройств :)
Дополнительные утилиты:
- Файловая система /sys
- Для обнаружения USB-устройств есть lsusb.
- sensors раскроет детали относительно чипа вашего ОЗУ.
- В SUSE системах имеется инструмент с названием 'yast2' для выполнения обычных
администраторских задач. Он выдает и сведения об аппаратном обеспечении.
- Для получения детальной информации о жестких дисках можно использовать hdparm.
- Команда lshal выдаст массу информации из HAL (the Hardware Abstraction Layer)
- Вы можете еще воспользоваться утилитой lshw, которая позволяет вывести информацию
от всех этих источников в виде единого списка (можно на дисплей).