5.3. Сбор информации об оборудовании программой dmesg
Проблема
При всех своих достоинствах шина PCI — день вчерашний. Чаще требуется получить список всех устройств в системе, не только устройств PCI: это и устройства USB, и устройства SCSI, конфигурация памяти и даже процессор.
Решение
Воспользуйтесь программой dmesg. Программа выводит список всего оборудования, обнаруженного ядром.
Чтобы просмотреть весь вывод dmesg, введите команду:
$ dmesg | less
Выходные данные dmesg также можно отфильтровать для поиска конкретных устройств. Например, следующая команда выводит список всех устройств USB:
$ dmesg | grep -i usb
Вывод списка устройств ISA:
$ dmesg | grep -i isa
isapnp: Scanning for PnP cards...
isapnp: SB audio device quirk - increasing port range
isapnp: Card 'SupraExpress 56i Voice'
Определение объёма физической памяти в системе:
$ dmesg | grep -i memory
Memory: 256492/262080k available (1467k kernel code, 5204 reserved, 516k data, 96k init, OK highmem)
Вывод списка устройств IDE, использующих подсистему эмуляции SCSI в ядре 2.4 и более старых версий:
$ dmesg | grep -i scsi
Kernel command line: root=/dev/hda6 ro hdb=scsi hdc=scsi
ide_setup: hdb=scsi
ide_setup: hdc=scsi
SCSI subsystem driver Revision: 1.00
hdb: attached ide-scsi driver
hdc: attached ide-scsi driver
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
А вот как выглядят «настоящие», не эмулированные устройства SCSI:
$ dmesg | grep -i scsi
SCSI subsystem driver Revision: 1.00
scsi0: Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev. 6.2.8
<Adaptec aic7892 Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
...Vendor: IBM-PSG Model: DPSS-336950M Rev: S9HA
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
(scsi0:A:0): 160.000MB/S transfers (80.000MHz DT, offset 63, 16bit)
SCSI device sda: 71096640 512-byte hdwr sectors (36401 MB)
Partition check:
sda: sda1 sda2 sda3 sda4 < sda5 sda6 >
Далее показана информация о камере USB, подключённой к системе, включая её местонахождение в файловой системе. Обычно информация об устройстве USB занимает десяток строк и более:
$ dmesg | grep -i usb
usb.c: registered new driver ibmcam
ibmcam.c: IBM PC Camera USB camera found (model 2, rev. 0x030a)
usbvideo.c: ibmcam on /dev/video0: canvas=352x240 videosize=352x240
Вывод информации о последовательных портах:
$ dmesg | grep -i tty
ttyS00 at 0x03f8 (irq = 4) is a 16550A
Вывод информации о процессоре (или процессорах):
$ dmesg | grep -i cpu
Initializing CPU#0
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 64K (64 bytes/line)
Intel machine check reporting enabled on CPU#0.
CPU: After generic, caps: 0183f9ff c1c7f9ff 00000000 00000000
CPU: Common caps: 0183f9ff c1c7f9ff 00000000 00000000
CPU: AMD Duron(tm) Processor stepping 01
Обратите внимание: при поиске возвращаются только те строки, в которых присутствует искомая подстрока. Часто дополнительная информация содержится в соседних строках и находится прямым просмотром файла:
Initializing CPU#0
Detected 801.446 MHz processor.
Комментарий
Программа dmesg всегда выводит обновлённую информацию, даже при частой смене оборудования (например, при подключении и отключении устройств USB).
См. также
dmesg(8).