pciconf richtig deuten

lockdoc

Well-Known Member
Hallo,

ich wollte mal kurz fragen, wie ich pciconf zu deuten habe und ob ich anhand des outputs sehen, ob ein device generell nicht unterstuetzt wird?

Hier mal ein kurzer beispiel output:
Code:
none0@pci0:0:31:3:	class=0x0c0500 card=0x01d61028 chip=0x27da8086 rev=0x01 hdr=0x00
siba_bwn0@pci0:12:0:0:	class=0x028000 card=0x00071028 chip=0x431114e4 rev=0x01 hdr=0x00
bge0@pci0:9:0:0:	class=0x020000 card=0x01d61028 chip=0x160014e4 rev=0x02 hdr=0x00
cbb0@pci0:2:1:0:	class=0x060700 card=0x01d61028 chip=0x04761180 rev=0xb4 hdr=0x02
fwohci0@pci0:2:1:1:	class=0x0c0010 card=0x01d61028 chip=0x05521180 rev=0x09 hdr=0x00
none1@pci0:2:1:2:	class=0x080501 card=0x01d61028 chip=0x08221180 rev=0x18 hdr=0x00

1.) Bedeutet "noneX", dass dieses Device nicht von FreeBSD unterstuetzt wird?

2.) Alles was links vor @pciX:X:X:X steht sind das die Treiber mit denen das Device zu 100% unterstuetzt wird?
 
1) Dein "noneX" bedeutet nicht zwangslaeufig, das FreeBSD das Geraet nicht unterstuetzt, sondern nur das kein passender Treiber geladen wurde. z.B. eine Sound-, oder TV Karte wo nicht das entsprechende Modul geladen ist.
Ich wuerde auch empfehlen ein "pciconf -lv" auszufuehren, dann kannst du zumindest lesen zu welcher Klasse und welchem Hersteller das Geraet gehoert. Es sei denn du kennst die hex ID dazu auswendig.
 
Weil die ID nicht aussagt, dass er das Gerät unterstützt. Die Sache ist, dass einige Hersteller dazu übergegangen sind, hinter einer ID mehrere Geräte zu verstecken und ihre proprietären Windowstreiber anhand anderer Merkmale auseinanderzupfen, welcher Codepfad genutzt werden muss. Ein klassisches Beispiel sind z.B. Intel WLAN-NIC, die gern Mal für eine Serie durchgehend die gleiche ID nutzen. Dazu kommen so nette Machenschaften wie Auswechseln des Chips, ohne die ID zu ändern.
 
Woran seh ich denn, ob der Treiber ein Geraet nun unterstuetzt?

@Yamagi:
pciconf bietet ja noch mehr infos um das device zu identifizieren, beispielsweise sub_vendor/sub_device und die Chipset revision


Edit:
Also wenn ich noch das hier dazu nehme:
http://www.bsdforen.de/showthread.php?t=27189#4

Dann heisst es im Endeffekt:
Ich kann werder bei den vendorID/deviceID noch bei den Chipsets selbst sicher gehen, ob es nun erkannt werde koennte oder nicht :-(
 
Zuletzt bearbeitet:
Hat evtl Jemand mal ein pciconf dump, wo ein Treiber zugeordnet ist (also kein "noneX@pci" steht), aber das device an sich nicht funktioniert?
 
Der beste Weg waere, neben einfach ausprobieren, in die Treiber man page zu gucken. Der Intel wlan Treiber (iwn) fuer die 6000er Serie wird zwar generell unterstuetzt und funktioniert auch, aber ich kann ihn nicht in den ap mode versetzen. In der Regel sind diese Limitierungen meistens in der man page aufgefuehrt. Sonst koennte man einen Blick in den Code des Treibers werfen, neben dem Quellcode selbst lesen sind da auch oefters Kommentare die Aufschluesse ueber die Funktionalitaet und Einschraenkungen bieten.
 
Hi Leute,

koennten evtl. ein paar von euch mal bitte ihre pciconfs via pciconf -l ohne -v posten mit angabe der architecture 32bit oder 64bit und der FreeBSD Version.

Schon mal Danke im Vorraus
 
Lenovo Thinkpad R500 FreeBSD/amd64 8.2:
Code:
hostb0@pci0:0:0:0:	class=0x060000 card=0x20e017aa chip=0x2a408086 rev=0x07 hdr=0x00
vgapci0@pci0:0:2:0:	class=0x030000 card=0x20e517aa chip=0x2a428086 rev=0x07 hdr=0x00
vgapci1@pci0:0:2:1:	class=0x038000 card=0x20e517aa chip=0x2a438086 rev=0x07 hdr=0x00
none0@pci0:0:3:0:	class=0x078000 card=0x20e617aa chip=0x2a448086 rev=0x07 hdr=0x00
uhci0@pci0:0:26:0:	class=0x0c0300 card=0x20f017aa chip=0x29378086 rev=0x03 hdr=0x00
uhci1@pci0:0:26:1:	class=0x0c0300 card=0x20f017aa chip=0x29388086 rev=0x03 hdr=0x00
uhci2@pci0:0:26:2:	class=0x0c0300 card=0x20f017aa chip=0x29398086 rev=0x03 hdr=0x00
ehci0@pci0:0:26:7:	class=0x0c0320 card=0x20f117aa chip=0x293c8086 rev=0x03 hdr=0x00
hdac0@pci0:0:27:0:	class=0x040300 card=0x20f217aa chip=0x293e8086 rev=0x03 hdr=0x00
pcib1@pci0:0:28:0:	class=0x060400 card=0x20f317aa chip=0x29408086 rev=0x03 hdr=0x01
pcib2@pci0:0:28:1:	class=0x060400 card=0x20f317aa chip=0x29428086 rev=0x03 hdr=0x01
pcib3@pci0:0:28:3:	class=0x060400 card=0x20f317aa chip=0x29468086 rev=0x03 hdr=0x01
pcib4@pci0:0:28:4:	class=0x060400 card=0x20f317aa chip=0x29488086 rev=0x03 hdr=0x01
pcib5@pci0:0:28:5:	class=0x060400 card=0x20f317aa chip=0x294a8086 rev=0x03 hdr=0x01
uhci3@pci0:0:29:0:	class=0x0c0300 card=0x20f017aa chip=0x29348086 rev=0x03 hdr=0x00
uhci4@pci0:0:29:1:	class=0x0c0300 card=0x20f017aa chip=0x29358086 rev=0x03 hdr=0x00
uhci5@pci0:0:29:2:	class=0x0c0300 card=0x20f017aa chip=0x29368086 rev=0x03 hdr=0x00
ehci1@pci0:0:29:7:	class=0x0c0320 card=0x20f117aa chip=0x293a8086 rev=0x03 hdr=0x00
pcib6@pci0:0:30:0:	class=0x060401 card=0x20f417aa chip=0x24488086 rev=0x93 hdr=0x01
isab0@pci0:0:31:0:	class=0x060100 card=0x20f617aa chip=0x29198086 rev=0x03 hdr=0x00
ahci0@pci0:0:31:2:	class=0x010601 card=0x20f817aa chip=0x29298086 rev=0x03 hdr=0x00
ichsmb0@pci0:0:31:3:	class=0x0c0500 card=0x20f917aa chip=0x29308086 rev=0x03 hdr=0x00
iwn0@pci0:3:0:0:	class=0x028000 card=0x12118086 chip=0x42378086 rev=0x00 hdr=0x00
bge0@pci0:4:0:0:	class=0x020000 card=0x20d517aa chip=0x169314e4 rev=0x02 hdr=0x00
cbb0@pci0:21:0:0:	class=0x060700 card=0x20c617aa chip=0x04761180 rev=0xba hdr=0x02
fwohci0@pci0:21:0:1:	class=0x0c0010 card=0x20c717aa chip=0x08321180 rev=0x04 hdr=0x00
sdhci0@pci0:21:0:2:	class=0x080500 card=0x20c817aa chip=0x08221180 rev=0x21 hdr=0x00
none1@pci0:21:0:3:	class=0x088000 card=0x20c917aa chip=0x08431180 rev=0x11 hdr=0x00
none2@pci0:21:0:4:	class=0x088000 card=0x20ca17aa chip=0x05921180 rev=0x11 hdr=0x00
none3@pci0:21:0:5:	class=0x088000 card=0x20cb17aa chip=0x08521180 rev=0x11 hdr=0x00

Asus P8BZ68-V Pro FreeBSD/amd64 8.4 + Patches:
Code:
hostb0@pci0:0:0:0:	class=0x060000 card=0x844d1043 chip=0x01008086 rev=0x09 hdr=0x00
pcib1@pci0:0:1:0:	class=0x060400 card=0x844d1043 chip=0x01018086 rev=0x09 hdr=0x01
none0@pci0:0:22:0:	class=0x078000 card=0x844d1043 chip=0x1c3a8086 rev=0x04 hdr=0x00
em0@pci0:0:25:0:	class=0x020000 card=0x849c1043 chip=0x15038086 rev=0x05 hdr=0x00
ehci0@pci0:0:26:0:	class=0x0c0320 card=0x844d1043 chip=0x1c2d8086 rev=0x05 hdr=0x00
hdac1@pci0:0:27:0:	class=0x040300 card=0x84101043 chip=0x1c208086 rev=0x05 hdr=0x00
pcib2@pci0:0:28:0:	class=0x060400 card=0x844d1043 chip=0x1c108086 rev=0xb5 hdr=0x01
pcib3@pci0:0:28:1:	class=0x060400 card=0x844d1043 chip=0x1c128086 rev=0xb5 hdr=0x01
pcib4@pci0:0:28:2:	class=0x060400 card=0x844d1043 chip=0x1c148086 rev=0xb5 hdr=0x01
pcib5@pci0:0:28:3:	class=0x060400 card=0x844d1043 chip=0x1c168086 rev=0xb5 hdr=0x01
pcib6@pci0:0:28:4:	class=0x060400 card=0x844d1043 chip=0x1c188086 rev=0xb5 hdr=0x01
pcib7@pci0:0:28:6:	class=0x060401 card=0x844d1043 chip=0x244e8086 rev=0xb5 hdr=0x01
pcib9@pci0:0:28:7:	class=0x060400 card=0x844d1043 chip=0x1c1e8086 rev=0xb5 hdr=0x01
ehci1@pci0:0:29:0:	class=0x0c0320 card=0x844d1043 chip=0x1c268086 rev=0x05 hdr=0x00
isab0@pci0:0:31:0:	class=0x060100 card=0x844d1043 chip=0x1c448086 rev=0x05 hdr=0x00
ahci1@pci0:0:31:2:	class=0x010601 card=0x844d1043 chip=0x1c028086 rev=0x05 hdr=0x00
ichsmb0@pci0:0:31:3:	class=0x0c0500 card=0x844d1043 chip=0x1c228086 rev=0x05 hdr=0x00
vgapci0@pci0:1:0:0:	class=0x030000 card=0x15613842 chip=0x120010de rev=0xa1 hdr=0x00
hdac0@pci0:1:0:1:	class=0x040300 card=0x15613842 chip=0x0e0c10de rev=0xa1 hdr=0x00
xhci0@pci0:3:0:0:	class=0x0c0330 card=0x84881043 chip=0x10421b21 rev=0x00 hdr=0x00
atapci0@pci0:5:0:0:	class=0x010185 card=0x84601043 chip=0x2362197b rev=0x10 hdr=0x00
xhci1@pci0:6:0:0:	class=0x0c0330 card=0x84881043 chip=0x10421b21 rev=0x00 hdr=0x00
pcib8@pci0:7:0:0:	class=0x060401 card=0x10801b21 chip=0x10801b21 rev=0x01 hdr=0x01
ral0@pci0:8:0:0:	class=0x028000 card=0xe9341458 chip=0x03011814 rev=0x00 hdr=0x00
pcm0@pci0:8:1:0:	class=0x040100 card=0x41543137 chip=0x17241412 rev=0x01 hdr=0x00
fwohci0@pci0:8:2:0:	class=0x0c0010 card=0x81fe1043 chip=0x30441106 rev=0xc0 hdr=0x00
ahci0@pci0:9:0:0:	class=0x010601 card=0x84771043 chip=0x91721b4b rev=0x11 hdr=0x00

Und was willst du nun damit? :)
 
FreeBSD/amd64 8.2:
Code:
hostb0@pci0:0:0:0:      class=0x060000 card=0x50001458 chip=0x2e208086 rev=0x03 hdr=0x00
pcib1@pci0:0:1:0:       class=0x060400 card=0x50001458 chip=0x2e218086 rev=0x03 hdr=0x01
none0@pci0:0:27:0:      class=0x040300 card=0xa0021458 chip=0x3a3e8086 rev=0x00 hdr=0x00
pcib2@pci0:0:28:0:      class=0x060400 card=0x50011458 chip=0x3a408086 rev=0x00 hdr=0x01
pcib3@pci0:0:28:3:      class=0x060400 card=0x50011458 chip=0x3a468086 rev=0x00 hdr=0x01
pcib4@pci0:0:28:4:      class=0x060400 card=0x50011458 chip=0x3a488086 rev=0x00 hdr=0x01
pcib5@pci0:0:28:5:      class=0x060400 card=0x50011458 chip=0x3a4a8086 rev=0x00 hdr=0x01
pcib6@pci0:0:30:0:      class=0x060401 card=0x50001458 chip=0x244e8086 rev=0x90 hdr=0x01
isab0@pci0:0:31:0:      class=0x060100 card=0x50011458 chip=0x3a188086 rev=0x00 hdr=0x00
atapci1@pci0:0:31:2:    class=0x010601 card=0xb0051458 chip=0x3a228086 rev=0x00 hdr=0x00
none1@pci0:0:31:3:      class=0x0c0500 card=0x50011458 chip=0x3a308086 rev=0x00 hdr=0x00
twa0@pci0:1:0:0:        class=0x010400 card=0x100413c1 chip=0x100413c1 rev=0x01 hdr=0x00
em0@pci0:3:0:0: class=0x020000 card=0xa01f8086 chip=0x10d38086 rev=0x00 hdr=0x00
atapci0@pci0:4:0:0:     class=0x010185 card=0xb0001458 chip=0x2368197b rev=0x00 hdr=0x00
re0@pci0:5:0:0: class=0x020000 card=0xe0001458 chip=0x816810ec rev=0x02 hdr=0x00
vgapci0@pci0:6:0:0:     class=0x030000 card=0x00881002 chip=0x47561002 rev=0x3a hdr=0x00
 
Und was willst du nun damit? :)

Ich arbeite an einem Projekt mit, welches Treiberdaten und Geraete analysiert. Da man ohne das selbst zu testen nur schwer aussagen machen kann, sind wir dazu uebergegangen es mit Wahrscheinlichkeiten zu analysieren, welche dann immer exakter werden sollen, sobald die Informationen dichter werden. Hierbei ist allerdings jede Menge Vorarbeit notwendig erstmal zu analysieren was fuer Daten zur Verfuegung stehen und wie man diese kombiniert.
 
Zurück
Oben