Hi! Vielleicht weiß jemand wie das geht... Ich brauche ein Programm was erkennt, auf welchen PCIe-Anschlüssen eines Mainboards oder Lanes eine Grafikkarte dranhängt und wo nicht. Evtl. würde auch "belegt" oder "nicht belegt" reichen. Eine nähere Identifizierung nach Geräte-Typ wäre klasse, aber es müßte auch ohne gehen. Hat hier jemand schon mal sowas in diese Richtung programmiert oder kennt eine Möglichkeit, wie man das hinbekommt? Danke!
Für das, was DU willst, gibt es keine API. Ein PCI-Device (das schließt PCIe ein) wird vom Betriebssystem identifiziert durch: - Busnummer - Vendor ID - Device ID - Funktionsnummer Mehr bekommst Du nicht. Alles andere ist in höchstem Maße gerätespezifisch, und normalerweise interessiert das auch nicht. fchk
Gast
#5255919
lspci?
Da gibts doch noch den Classcode im Configspace. Ethernet controller, bridge, VGA compatible controller, ... http://wiki.osdev.org/PCI#Class_Codes
> Ein PCI-Device (das schließt PCIe ein) wird vom > Betriebssystem identifiziert durch: > - Busnummer > - Vendor ID > - Device ID > - Funktionsnummer Das reicht doch völlig. Wie komme ich an diese Liste dran?
Welches Betriebssystem?
Am liebsten Windows, aber von mir aus auch was beliebiges per USB-Boot.
Gast
#5256043
Gast
#5256044
und dann so: devcon find pci\*
Bei moderneren Boards und besseren BIOSsen, sind die physischen Steckplätze und ihre Belegung in den DMI-Daten aufgeschlüsselt. Unter Linux also einfach mal dmidecode aufrufen und schauen was da rauskommt. Wie das unter Windows geht musst Du selbst schauen.
Gast
#5256288
Ben B. schrieb: > Ich brauche ein Programm was erkennt, auf welchen PCIe-Anschlüssen eines > Mainboards oder Lanes eine Grafikkarte dranhängt Soweit kein Problem, aber woher weisst du, welche Nr. ein bestimmter Steckplatz auf dem Motherboard hat? Oder interessiert das garnicht? Georg
Das könnte man experimentell feststellen. Es geht um die Diagnose von Mining-Rigs. 8 oder 13 Karten an einem Board und manchmal wird eine oder mehrere Grafikkarten nicht gefunden. Dann sucht man sich einen Wolf, welche Karte fehlt.
Willst du einfach nur ein Programm haben um zu gucken? Dann reicht ggf. schon HWinfo64. Ansonsten kann man sich da recht einfach via SetupDiEnumDeviceInfo, SetupDiGetDeviceRegistryProperty etc. recht gut durchhangeln
Danke, ich schaue mir HWinfo mal an. Schön wäre, wenn man mit einfachen Mitteln ein Programm erstellen könnte, das beim Start ausgibt auf welchen PCI-Steckplätzen bzw. Bus-IDs eine Grafikkarte (oder einfach: ein Gerät) gefunden wurde (und auf welchen nicht). Das würde die Fehlersuche in diesen Geräten sehr vereinfachen. Ich hab sowas leider noch nie gemacht, mir war die Zuordnung immer egal und eine Grafikkarte wird schon da sein. Ich hab auch noch keine große Grafikprogrammierung gemacht, deswegen fällt mir diese Problemlösung schwer.
Für Windows gäbe es da noch http://www.pcitree.de/
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.