URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 56661
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Как узнать поддерживается ли PCI ус..."

Отправлено auto_tips , 06-Июл-09 10:41 
Для определения какие доступные модули ядра подходят для установленных в текущей системе PCI плат
нужно запустить утилиту pcimodules, которая для сопоставления модулей ядра и идентификаторов PCI плат
использует содержимое файла /lib/modules/версия_ядра/modules.pcimap, автоматически генерируемого на этапе
выполнения команды depmod.

Полный список всех поддерживаемых PCI идентификаторов можно найти в файле /usr/share/hwdata/pci.ids
Обновить базу pci.ids можно выполнив команду:

   update-pciids

Для просмотра всех PCI устройств в системе нужно использовать утилиту lspci (lspci -vvv для детального вывода).

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

   lspci -k

Рассмотрим по шагам процесс определения присутствия поддержки имеющейся аудио платы в текущем Linux ядре.

Смотрим параметры платы:

   lspci | grep -i audio

   00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller

Видим, что идентификатор платы 00:1b.0. Далее выводим для этого идентификатора более подробную информацию:


   lspci -n | grep 00:1b.0

   00:1b.0 0403: 8086:27d8 (rev 01)

где,
   00:1b.0 - код устройства;
   8086 - код производителя (Intel Corporation)
   27d8 - идентификатор модели.

Проверяем какие модули ядра поддерживают данную модель:

   grep 27d8 /lib/modules/$(uname -r)/modules.pcimap

   snd-hda-intel 0x00008086 0x000027d8...

Смотрим информацию о драйвере:

   modinfo snd-hda-intel

   filename:       /lib/modules/2.6.27-11-server/kernel/sound/pci/hda/snd-hda-intel.ko
   description:    Intel HDA driver
   depends:        snd-pcm,snd-page-alloc,snd

URL: http://www.cyberciti.biz/tips/linux-find-supported-pci-hardw...
Обсуждается: http://www.opennet.ru/tips/info/2088.shtml


Содержание

Сообщения в этом обсуждении
"Как узнать поддерживается ли PCI устройство в заданном Linux ядре"
Отправлено Аноним , 06-Июл-09 10:41 
У меня ядро без модулей. Где можно в исходниках найти аналог /lib/modules/$(uname -r)/modules.pcimap ?

"Как узнать поддерживается ли PCI устройство в заданном Linux..."
Отправлено pavlinux , 06-Июл-09 19:00 
grep -R  PCI_DEVICE /usr/src/linux/ | grep 27d8

"Раздел полезных советов: Как узнать поддерживается ли PCI ус..."
Отправлено тест , 06-Июл-09 11:03 
Автор, как истинный бубунтолог, забыл указать 2 вещи- что это линух и какой дистрибутив.

"Раздел полезных советов: Как узнать поддерживается ли PCI ус..."
Отправлено const86 , 06-Июл-09 11:19 
Про линукс написано в заголовке, а дистрибутив тут действительно неважен.

"Раздел полезных советов: Как узнать поддерживается ли PCI ус..."
Отправлено thealexis , 06-Июл-09 13:25 
>Про линукс написано в заголовке, а дистрибутив тут действительно неважен.

Похоже что важен, поскольку в СentOS 5.3 опции -k нету.

[myuser@myserver]# lspci -k
lspci: invalid option -- k


"Раздел полезных советов: Как узнать поддерживается ли PCI ус..."
Отправлено Zawullon , 06-Июл-09 13:45 
>Похоже что важен, поскольку в СentOS 5.3 опции -k нету.

В бубунте 8.0.4 тоже нету.
Опция -k есть не во всех вериях pciutils.


"Раздел полезных советов: Как узнать поддерживается ли PCI ус..."
Отправлено тест , 08-Июл-09 10:23 
опция -к появилась с версии 3.0;
А если нужных модулей нет ? Автор не видел монолитных ядер ?
ИМХО, универсальный способ grep <PCI_ID> /usr/src/linux.

"Как узнать поддерживается ли PCI устройство в заданном Linux ядре"
Отправлено vitek , 06-Июл-09 13:46 
в заметке указаны конечно известные вещи, но всё-таки спасибо, что у автора нашлось время её написать.
хорошо бы ещё указать про утилиту hwinfo. например её вывода (без параметров):
78: None 00.0: 10701 Ethernet
  [Created at net.124]
  Unique ID: usDW.ndpeucax6V1
  Parent ID: rBUF.AqfLKmJBCU4
  SysFS ID: /class/net/eth0
  SysFS Device Link: /devices/pci0000:00/0000:00:1c.5/0000:06:00.0
  Hardware Class: network interface
  Model: "Ethernet network interface"
  Driver: "r8169"
  Driver Modules: "r8169"
  Device File: eth0
  HW Address: 00:1e:68:26:92:ee
  Link detected: no
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #17 (Ethernet controller)
как видите она выводит почти всю необходимую информацию.
кстати, это поможет и автору первого комментария

"Как узнать поддерживается ли PCI устройство в заданном Linux ядре"
Отправлено pavlinux , 06-Июл-09 19:08 
# cat /sys/bus/pci/devices/*\:*/vendor
# cat /sys/bus/pci/devices/*\:*/device

lspci какие-то придумали ... :)

Сейчас ведь спросят,
" - а что делать если у меня sysfs не вкомпилен?!"
- Вешаться!


"Как узнать поддерживается ли PCI устройство в заданном Linux..."
Отправлено del , 07-Июл-09 17:48 
ну это не совсем удобно

лучше уж тогда ченить типа

# find /sys/bus/pci/devices/ -name "*\:*" -print -exec cat {}/vendor \; -exec cat {}/device \;


"Как узнать поддерживается ли PCI устройство в заданном Linux..."
Отправлено pavlinux , 07-Июл-09 23:54 
>ну это не совсем удобно
>
>лучше уж тогда ченить типа
>
># find /sys/bus/pci/devices/ -name "*\:*" -print -exec cat {}/vendor \; -exec cat
>{}/device \;

тоже хорошая разминка для мозга...


"Как узнать поддерживается ли PCI устройство в заданном Linux ядре"
Отправлено Vitls , 07-Июл-09 20:18 
Забыли про dmidecode

"Как узнать поддерживается ли PCI устройство в заданном Linux..."
Отправлено pavlinux , 07-Июл-09 23:44 
>Забыли про dmidecode

А Вы ни разу не видели компа, который по dmidecode в дамп падает....
Ну не в дамп конечно, а выдает что-то типа: "DMI Information not found" :)

по-моему какая-то из PC/104 (скорее всего Fastwell или Nexcom)