PCI ID 1022 :43b9 — это контроллер USB 3.1 xHCI набора микросхем AMD X370 Series. Идентификатор подсистемы PCI 1b21 :1142 предполагает, что на самом деле это может быть контроллер ASMedia ASM1042A USB 3, возможно, интегрированный в набор микросхем AMD.
Для большинства микросхем контроллера USB 3.x подходит модуль драйвера xhci_pci
, который зависит от модуля xhci_hcd
. Оба эти модуля являются частью стандартного ядра Linux, поэтому они должны быть доступны во всех современных дистрибутивах Linux. Соответствующие параметры конфигурации ядра — CONFIG_USB_XHCI_PCI
и CONFIG_USB_XHCI_HCD
.
Многие дистрибутивы включают файл конфигурации ядра как /boot/config-
. Итак, вы можете запустить эту команду:
$ grep XHCI /boot/config-$(uname -r)
CONFIG_USB_XHCI_HCD=m
CONFIG_USB_XHCI_PCI=m
# CONFIG_USB_XHCI_PLATFORM is not set
Здесь и xhci_hcd
, и xhci_pci
сконфигурированы так, чтобы быть доступными как модули. Если бы в строках вместо этого было написано ...=y
, поддержка USB 3 была бы скомпилирована в основное ядро.
PCI ID 1022 :43b5, ID подсистемы 1b21 :1062 — это контроллер AHCI SATA (или eSATA ), на который уже распространяется модуль ahci
.
Идентификаторы PCI можно найти в Репозитории идентификаторов PCI .
Если драйвер указан с помощью идентификаторов производителя/продукта, вы можете использовать /sbin/modprobe -c | grep '
. Если вы получите такую строку, значит, вы нашли совпадение:
alias pci:v0000:d0000sv...
Эта информация поступает из /lib/modules/modules.alias[.bin]
, которая генерируется командой depmod
из информации о поддержке устройств, встроенной в сами модули ядра (, определенной в исходном коде с помощью MODULE_DEVICE_TABLE
макроса ). Вы также можете использовать modinfo
для просмотра аппаратной поддержки, заявленной конкретным модулем.
Однако не все модули указаны с помощью идентификаторов поставщиков/продуктов. Некоторые драйверы охватывают весь класс устройств; например, модуль xhci_pci
заявляет о поддержке базового класса PCI 0x0C, подкласса 0x03, интерфейса 0x30..., который соответствует «контроллеру последовательной шины», «контроллеру USB» и «XHCI» соответственно.Это выражается как
alias: pci:v*d*sv*sd*bc0Csc03i30*
Обратите внимание, что обычно вам не нужно выполнять какой-либо из этих поисков вручную, если только вы не занесли некоторые модули в черный список или автоматическое -определение не дало сбой по какой-либо причине. Например, когда ядро Linux обнаружит контроллер USB 3 оригинального постера, оно вызовет (эквивалент )выполнения следующей команды:
modprobe pci:v00001022d000043b9sv1b21sd1142bc0Csc03i30
, который содержит идентификаторы всех производителей оборудования/устройств/классов/подклассов/интерфейсов, доступных для устройства. Если один из псевдонимов с подстановочными знаками в записи в конфигурации modprobe
совпадает с этой строкой, соответствующий модуль будет загружен автоматически.
Для USB-устройств (и вообще для любых автопроверочных шин )существует аналогичная система псевдонимов модулей и репозиторий USB ID.
Если в вашей системе не скомпилирован соответствующий модуль, лучше всего использовать репозиторий идентификаторов PCI для идентификации устройства или чипа, используемого в нем. Иногда в записи репозитория указывается модуль ядра Linux, который будет поддерживать его. Если такой информации нет, возможно, вам придется погуглить, используя модель устройства/чипа; обычно это позволит вам найти любые альтернативные/экспериментальные модули драйверов, которые еще не имеют (? )был включен в стандартное ядро.