Wie kann ich eine gesteckte PCI-e-Grafikkarte auf Betriebssystemebene deaktivieren?

15338
Karl Richter

Ich habe einen Server, für den ich eine Möglichkeit haben möchte, über einen mit VGA verbundenen Bildschirm darauf zuzugreifen (sehr selten wird meistens über SSH darauf zugegriffen). Deshalb habe ich eine PCI-e-Grafikkarte eingesteckt und das VGA-Kabel entfernt. Die Grafikkarte wird passiv gekühlt. Wenn ich das Gehäuse öffne und den kühlen Körper anfasse, kann ich spürbare Wärme spüren und feststellen, dass sie Energie verbraucht (es gibt keine Verbraucher in der Nähe, die die Wärmeenergie in irgendeiner Weise übertragen könnten).

Wenn ich die Karte entferne (wie in Soll ich eine nicht verwendete Grafikkarte deaktivieren ? ), Muss ich sie jedes Mal einbauen, wenn ich einen Bildschirm anschließen möchte. Ich möchte das ebenso vermeiden wie den Energieverbrauch.

Die De- und Re-Aktivierung muss auf OS-Ebene erfolgen (z. B. über SSH), da ich sonst einen Bildschirm zum Konfigurieren der UEFI (oder blind, was keine Alternative ist) und ein Huhn-Ei ausführen muss. Problem.

Ich verwende Ubuntu 15.04 mit Linux 4.0.2. Die Grafikkarte trägt die Bezeichnung XFX HD 5450 850M und verfügt über einen VGA-, HDMI- und D-SUB-Anschluss. Das Mainboard ist ein ASRock X99-Extreme ohne integrierte Grafik.

BEARBEITEN: Nach dem Blacklisting der in sudo lspci -v(nach WhimsicalWombats vielversprechender Antwort unten aufgeführten) aufgelisteten Module (in meinem Fall musste ich den modprobe.blacklist=module_to_blacklistKernel-Parameter verwenden - siehe https://askubuntu.com/questions/110341/how-to-blacklist-kernel- module Für weitere Details - für radeonund snd_hda_intel) erwärmt sich die PCIe-Grafikkarte immer noch (passiver Kühler hat> 60 Grad und es ist keine Wärmequelle in der Nähe) und es sind keine Module lspci -vfür die Geräte aufgeführt. Die Ausgabe lspci -vfür die Geräte ist nicht

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series] (prog-if 00 [VGA controll er]) Subsystem: XFX Pine Group Inc. Device 303e Physical Slot: 4 Flags: bus master, fast devsel, latency 0, IRQ 11 Memory at e0000000 (64-bit, prefetchable) [size=256M] Memory at fbe20000 (64-bit, non-prefetchable) [size=128K] I/O ports at e000 [size=256] Expansion ROM at fbe00000 [disabled] [size=128K] Capabilities: [50] Power Management version 3 Capabilities: [58] Express Legacy Endpoint, MSI 00 Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Capabilities: [150] Advanced Error Reporting  01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300 Series] Subsystem: XFX Pine Group Inc. Device aa68 Physical Slot: 4 Flags: bus master, fast devsel, latency 0, IRQ 10 Memory at fbe40000 (64-bit, non-prefetchable) [size=16K] Capabilities: [50] Power Management version 3 Capabilities: [58] Express Legacy Endpoint, MSI 00 Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Capabilities: [150] Advanced Error Reporting 

BEARBEITEN 2: https://askubuntu.com/a/138953/173287 schlägt vor zu tun echo 0 > /sys/bus/pci/slots/$N/powerund ich habe eine /sys/bus/pci/slots/$Nwo $Nist Nummer des Slots in aufgeführt lspci -v, aber es gibt keine powerDatei.

EDIT 3: Das Hinzufügen der Modaliases /sys/bus/pci/devices/[device]/modaliaszu den modprobe.blacklist=Kernel-Parametern hat keine Auswirkung auf Ubuntu-Mainline-Kernel von http://kernel.ubuntu.com/~kern-ppa/mainline/ und eine benutzerdefinierte 4.0.5-Erstellung mit make localmodconfigund die Aktivierung aller PCI-Optionen Der Bildschirm "Loading initramfs [version]" bleibt für immer sichtbar, während die Grafikkarte noch aufheizt.

4
Verwenden Sie die Leistung der Grafikkarte zu irgendeinem Zeitpunkt? GPU-intensive Programme oder VMs? Ctrl-alt-dlt vor 8 Jahren 0
Wie kann ich das überwachen? Ich habe keine zusätzlichen Treiber installiert. Bietet Linux eine solche Funktionalität sofort an? Karl Richter vor 8 Jahren 0
Vielleicht auch sehen [Kann ich meine PCIe-Video- / Grafikkarte per BIOS / Software vollständig deaktivieren?] (Http://superuser.com/questions/478845/can-i-fully-disable-my-pcie-video-graphics-card) -per-Bios-Software) Ƭᴇcʜιᴇ007 vor 8 Jahren 0
@ Ƭᴇcʜιᴇ007 Ich habe diese Frage in der Frage entsprechend bearbeitet. Das erklärt, warum die Markierung als Duplikat imo ungültig ist (die (unbestätigte) Antwort (die kaum eine andere ist) bezieht sich auf Manipulationen im BIOS / EFI). Karl Richter vor 8 Jahren 0
Ich bin nicht sicher, welche GPU Sie installiert haben, aber Sie könnten an [ZeroCore-Stromeinsparungen] interessiert sein (http://www.anandtech.com/show/5261/amd-radeon-hd-7970-review/11) MonkeyZeus vor 8 Jahren 1
Nur weil die vorhandenen Antworten für Sie nicht zufriedenstellend sind, wird daraus keine andere Frage *. Auch die Anführungszeichen geben an, sie mit der Software zu steuern (wie Sie es wünschen). Für mich ist es (zumindest) die gleiche Frage, und wenn Sie neuere / bessere Antworten auf vorhandene Fragen wünschen, sollten Sie [Kopfgeld setzen] (http://superuser.com/help/bounty) in Betracht ziehen. Ƭᴇcʜιᴇ007 vor 8 Jahren 0
Da das Entladen nicht abschneidet, fehlt Ihnen die `power'-Datei in` / sys / bus / * `, selbst wenn Kerneltreiber geladen sind. Möglicherweise möchten Sie dies mit beiden OpenSource-Radeon- und AMDs fglrx-Treibern überprüfen. Wenn Sie kein Glück haben, besuchen Sie das AMD-Forum, um genauere Informationen zur Energieverwaltung der Karte zu erhalten. Im schlimmsten Fall wird das System herausgerissen oder auf etwas wie 7730 (das Zero-Core unterstützt) oder ein NV-Äquivalent aktualisiert. Wenn Sie sich wirklich damit befassen wollen, sind die PCI-e-Spezifikationen unter [PCI-SIG] (https://www.pcisig.com/home) verfügbar, wenn Sie die Karte in den Energiesparmodus versetzen möchten. Spaßiges Zeug, wenn Sie Zeit haben WhimsicalWombat vor 8 Jahren 1

1 Antwort auf die Frage

4
WhimsicalWombat

Am einfachsten ist es, das Kernel-Modul auf die schwarze Liste zu setzen und zu entladen. Sie können das aktuelle Modul sehen, indem Sie zuerst die Busnummer sudo lspci |egrep -i (vga|video)auschecken und das erste Feld mit der Nummer 01: 00.0 notieren. Dann sudo lspci -vs 01:00 |grep moduleszeigt das Modul im Einsatz. Für HDMI-fähige Geräte gibt es normalerweise ein Subgerät wie 01: 00.1, bei dem es sich um das HDMI-Audiogerät handelt. Das auch auf die schwarze Liste setzen.

Fügen Sie beide /etc/modprobe.d/blacklist oder blacklist.conf hinzu, denen der Befehl blacklist vorangestellt ist. Zum Beispiel "Blacklist Radeon" und "Blacklist" snd-hda-intel usw.

Wenn Sie das Gerät verwenden möchten, können Sie es einfach mit sudo modprobe [Modulname] aktivieren.

Wenn dies nicht ausreicht oder wenn Sie dasselbe Modul für die GPU (integrierter oder zweiter Adapter) verwenden, die Sie tatsächlich verwenden, binden Sie das zu deaktivierende Modul an den PCI-Stub-Treiber. Dies geschieht am besten über die Kernel-Befehlszeile beim Booten. pcistub="pci-stub.ids=..."Fügen Sie einfach gefolgt von vendorID: deviceID-Codes hinzu, die Sie finden könnenlcpci -nns (your bus number from above) pcistub="pci-stub.ids=1002:6718,1002:aa80"

Wenn Sie das nach dem Binden an pcistub verwenden möchten, können Sie es über sysfs lösen und es an einen Treiber Ihrer Wahl binden, oder (einfacheren) Neustart durchführen und ohne die Befehlszeile starten.

Ich würde es zuerst versuchen, wenn nur das Deaktivieren des Autoload-Moduls ausreichend ist, sofern verfügbar.

BEARBEITEN:

Es ist möglich, dass der Kernel den nächsten verfügbaren Treiber testet, wenn Sie einen Blacklist auflisten. Wenn ja, können Sie dies auch auf die schwarze Liste setzen, wenn Sie es nicht benötigen. Es werden bald keine kompatiblen Treiber mehr zur Verfügung stehen, und das Gerät muss ohne Treiber sein, und es sollte heruntergefahren werden (oder zumindest zu niedrig).

Wenn es sich auch ohne einen verwendeten Kernel-Treiber erwärmt, aktualisieren Sie bitte den Post. Das würde mich sehr interessieren.

Ich habe deine Lösung ausprobiert. Ich habe viel gelernt und es sieht vielversprechend aus, danke. Der Fall, dass sich das Gerät immer noch aufheizt und keine Treiber verwendet werden, geschieht jetzt. Karl Richter vor 8 Jahren 0
@KarlRichter Danke für das Update. Ich weiß nicht, wie ich den Stromverbrauch vermeiden kann (oder ob er tatsächlich vermieden werden kann). Es ist möglich, dass die älteren Karten keinen Modus mit niedrigerer Leistung haben. AMDs ZeroCore wurde bei Southern Islands eingeführt (wodurch der Stromverbrauch im Leerlauf auf ein Minimum reduziert wird), aber ich hoffte, dass ein Verlust der Karte ohne Treiber zu etwas Ähnlichem führen würde. WhimsicalWombat vor 8 Jahren 0
Der Zerocore-Treiber sieht nach einem guten Workaround aus, verbraucht aber noch ~ 3 W und man muss die Treiberinstallation herausfinden, die dann nur für einen bestimmten Satz von AMD-Grafikkarten funktioniert (möglicherweise nur neue oder teure). Anfangs dachte ich, dass es ziemlich trivial ist, einen PCIe-Steckplatz auf Betriebssystemebene ein- und auszuschalten und somit eine große Anzahl von Stromverbrauchern. Karl Richter vor 8 Jahren 0
@KarlRichter ZeroCore kann nur in GCN 1.0 (oder 1.1) GPUs verwendet werden. Ab Serie 7000. 7730 war vor ein paar Jahren 50-Dollar-Dollar neu, daher wäre es jetzt nicht teuer, vor allem verwendet. Trotzdem würde ich zuerst versuchen, mit den radeon- und fglrx-Treibern durcheinander zu kommen, um zu sehen, ob Sie Ihr aktuelles Gerät in einen tieferen Suspend-Zustand bringen können. WhimsicalWombat vor 8 Jahren 0
Ich konnte "radeon" nur auf eine "schwarze Liste" setzen, indem ich sudo update-initramfs -u ausführte, um den Kernel neu zu erstellen (wie hier beschrieben: https://askubuntu.com/a/938663/115620). Das Aufheben der Blacklisting erforderte keinen weiteren Kernel-Neuaufbau. Chris Gregg vor 5 Jahren 0