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
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?
Am liebsten Windows, aber von mir aus auch was beliebiges per USB-Boot.
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.