Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

passendes Kernelmodul anhand von Geräte-ID bestimmen

0 views
Skip to first unread message

Marco Moock

unread,
Sep 3, 2022, 5:48:26 AM9/3/22
to
Hallo zusammen,
folgende Situation:
Ich kenne eine PCI-ID oder USB-ID und möchte rausfinden, welches
Kernelmodul dafür geeignet ist, am besten direkt im System.
Wie kann man sowas prüfen.

Die Hardware selbst hat man nicht, sodass man schauen kann, welches
geladen wird.
Es geht u.a. darum, herauszufinden, ob ein Gerät im eigenen System ein
passendes Modul hat bzw. ein solches in den Paketquellen ist.

Bernd Mayer

unread,
Sep 3, 2022, 5:57:09 AM9/3/22
to
Am 03.09.22 um 11:48 schrieb Marco Moock:
Hallo,

geht das möglicherweise über die Datenbank der PCI-IDs als Zwischenschritt?

http://pciids.sourceforge.net/v2.2/pci.ids


Bernd Mayer


Marco Moock

unread,
Sep 3, 2022, 6:17:05 AM9/3/22
to
Am Samstag, 03. September 2022, um 11:57:06 Uhr schrieb Bernd Mayer:

> geht das möglicherweise über die Datenbank der PCI-IDs als
> Zwischenschritt?
>
> http://pciids.sourceforge.net/v2.2/pci.ids

Danke, das ist schonmal der erste Teil.

Marco Moock

unread,
Sep 3, 2022, 6:18:45 AM9/3/22
to
Am Samstag, 03. September 2022, um 11:57:06 Uhr schrieb Bernd Mayer:

> geht das möglicherweise über die Datenbank der PCI-IDs als
> Zwischenschritt?

Nur wie finde ich dann passende Kernelmodule einer Distribution?

Michael Brand

unread,
Sep 3, 2022, 6:27:29 AM9/3/22
to
Hm...vielleicht über /lib/modules/$KERNEL_VERSION/modules.alias und dann
nach der PCI-ID greppen?

Ich habe jetzt nicht überprüft, ob dort sämtliche Kernelmodule die das
System vorhält eingetragen sind.

Michael

Tim Ritberg

unread,
Sep 3, 2022, 6:29:39 AM9/3/22
to
Am 03.09.22 um 12:27 schrieb Michael Brand:
modinfo zeigt das noch für ein Modul an.

Tim

Bernd Mayer

unread,
Sep 3, 2022, 6:58:27 AM9/3/22
to
Am 03.09.22 um 12:18 schrieb Marco Moock:
Hallo,

da kann man in der config des Kernels in /boot nachschauen.

Hier steht noch was zum Aufbau der PCI-IDs:
https://de.wikipedia.org/wiki/Peripheral_Component_Interconnect#PCI-ID


Bernd Mayer

Michael Brand

unread,
Sep 3, 2022, 7:09:43 AM9/3/22
to
Das war mein erster Gedanke, aber wie willst du mit vertretbarem Aufwand
damit das passende Modul für ein nicht verbautes Gerät herausfinden?

Eine rekursive Schleife, die alle Kernelmodule aufruft und nach der
passenden ID in der Ausgabe sucht?

Diese Idee hatte ich nach kurzem überlegen als zu aufwendig verworfen :-(

> Tim

Michael

Marco Moock

unread,
Sep 3, 2022, 3:11:11 PM9/3/22
to
Am Samstag, 03. September 2022, um 13:09:41 Uhr schrieb Michael Brand:

> Diese Idee hatte ich nach kurzem überlegen als zu aufwendig verworfen

Wie hast du die Sache gelöst?

Michael Brand

unread,
Sep 3, 2022, 6:52:41 PM9/3/22
to
Marco Moock wrote:
> Am Samstag, 03. September 2022, um 13:09:41 Uhr schrieb Michael Brand:
>
>> Diese Idee hatte ich nach kurzem überlegen als zu aufwendig verworfen

"Diese Idee" bezog sich auf einen rekursiven Aufruf aller Kernelmodule
mittels modinfo und einem grep nach der PCI-ID.

> Wie hast du die Sache gelöst?
>
Gar nicht, da ich ja dein Problem nicht habe :-)

Aber meine erste Idee
---
Hm...vielleicht über /lib/modules/$KERNEL_VERSION/modules.alias und dann
nach der PCI-ID greppen?
---
funktioniert, wenn man die ID mit jeweils 8 Stellen für Vendor und
Device angibt.
Als Beispiel ein SymbiosLogic-SCSI-HA mit der ID 1000:000d:
grep -i v00001000d0000000d /lib/modules/5.18.0-0.deb11.3-amd64/modules.alias
alias pci:v00001000d0000000Dsv*sd*bc*sc*i* sym53c8xx
zeigt mir, daß das Kernelmodul "sym53c8xx" dieses Gerät unterstützt.

Oder eine Netzwerkkarte von nvidia mit der ID 10DE:0450:
grep -i 000010DEd00000450 /lib/modules/5.18.0-0.deb11.3-amd64/modules.alias
alias pci:v000010DEd00000450sv*sd*bc*sc*i* forcedeth
wirft als Ergebnis das Modul "forcedeth" raus.

Das kann man bestimmt noch schöner machen, aber es funktioniert
wenigstens...

Michael

Marco Moock

unread,
Sep 4, 2022, 1:45:44 PM9/4/22
to
Am Sonntag, 04. September 2022, um 00:52:38 Uhr schrieb Michael Brand:

> Das kann man bestimmt noch schöner machen, aber es funktioniert
> wenigstens...

Vielen Dank, es funktioniert grundsätzlich, aber es scheinen nur Module
dabei zu sein, die auch im Kernel stecken, andere Pakete scheinen nicht
berücksichtigt zu werden.

09:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT218
[GeForce 210] [10de:0a65] (rev a2)

m@ryz:~$ grep -i 10ded00000a65
/lib/modules/5.15.0-41-generic/modules.alias
m@ryz:~$

m@ryz:~$ grep -i 1022d00007901
/lib/modules/5.15.0-41-generic/modules.alias alias
pci:v00001022d00007901sv*sd*bc*sc*i* ahci
m@ryz:~$

0 new messages