The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Как узнать поддерживается ли PCI устройство в заданном Linux ядре
Для определения какие доступные модули ядра подходят для установленных в текущей системе 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
 
06.07.2009 , Источник: http://www.cyberciti.biz/tips/linux...
Ключи: hardware, linux, driver, kernel / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Поддержка аппаратного обеспечения

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (-), 10:41, 06/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У меня ядро без модулей. Где можно в исходниках найти аналог /lib/modules/$(uname -r)/modules.pcimap ?
     
     
  • 2.8, pavlinux (ok), 19:00, 06/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    grep -R  PCI_DEVICE /usr/src/linux/ | grep 27d8
     

  • 1.2, тест (?), 11:03, 06/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автор, как истинный бубунтолог, забыл указать 2 вещи- что это линух и какой дистрибутив.
     
     
  • 2.3, const86 (ok), 11:19, 06/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Про линукс написано в заголовке, а дистрибутив тут действительно неважен.
     
     
  • 3.5, thealexis (??), 13:25, 06/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Про линукс написано в заголовке, а дистрибутив тут действительно неважен.

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

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

     
     
  • 4.6, Zawullon (?), 13:45, 06/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Похоже что важен, поскольку в СentOS 5.3 опции -k нету.

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

     
     
  • 5.14, тест (?), 10:23, 08/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    опция -к появилась с версии 3.0;
    А если нужных модулей нет ? Автор не видел монолитных ядер ?
    ИМХО, универсальный способ grep <PCI_ID> /usr/src/linux.
     

  • 1.7, vitek (??), 13:46, 06/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    в заметке указаны конечно известные вещи, но всё-таки спасибо, что у автора нашлось время её написать.
    хорошо бы ещё указать про утилиту 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)
    как видите она выводит почти всю необходимую информацию.
    кстати, это поможет и автору первого комментария
     
  • 1.9, pavlinux (ok), 19:08, 06/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    # cat /sys/bus/pci/devices/*\:*/vendor
    # cat /sys/bus/pci/devices/*\:*/device

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

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

     
     
  • 2.10, del (??), 17:48, 07/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    ну это не совсем удобно

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

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

     
     
  • 3.13, pavlinux (ok), 23:54, 07/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >ну это не совсем удобно
    >
    >лучше уж тогда ченить типа
    >
    ># find /sys/bus/pci/devices/ -name "*\:*" -print -exec cat {}/vendor \; -exec cat
    >{}/device \;

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

     

  • 1.11, Vitls (??), 20:18, 07/07/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Забыли про dmidecode
     
     
  • 2.12, pavlinux (ok), 23:44, 07/07/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Забыли про dmidecode

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

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

     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру