
Ich habe einen Server am Laufen, auf den ich mit einem an VGA angeschlossenen Bildschirm zugreifen möchte (sehr selten, meistens erfolgt der Zugriff über SSH). Dazu habe ich eine PCI-e-Grafikkarte eingesteckt und das VGA-Kabel entfernt. Die Grafikkarte wird passiv gekühlt und wenn ich das Gehäuse öffne und den kühlen Körper berühre, spüre ich eine spürbare Wärme und schließe daraus, dass sie Energie verbraucht (es sind keine Verbraucher in der Nähe, die die Wärmeenergie irgendwie weitergeben könnten).
Wenn ich die Karte ausstecke (wie inSollte ich eine ungenutzte Grafikkarte deaktivieren?) Ich muss es jedes Mal einbauen, wenn ich einen Bildschirm anschließen möchte. Das möchte ich vermeiden, ebenso wie den Stromverbrauch.
Die De- und Reaktivierung muss auf Betriebssystemebene erfolgen (z. B. über SSH), da ich sonst einen Bildschirm zur Konfiguration des UEFI benötigen würde (oder dies blind tun müsste, was keine Alternative ist) und auf ein Henne-Ei-Problem stoßen würde.
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.
EDIT: Nach dem Blacklisting der verwendeten Module sudo lspci -v
(nach der vielversprechenden Antwort von @WhimsicalWombat weiter unten) (in meinem Fall musste ich den modprobe.blacklist=module_to_blacklist
Kernel-Parameter verwenden - siehehttps://askubuntu.com/questions/110341/how-to-blacklist-kernel-modulesfür weitere Details - für radeon
und snd_hda_intel
) die PCIe-Grafikkarte erwärmt sich immer noch (passiver Kühler hat > 60 Grad und es gibt keine Wärmequelle in der Nähe) und es sind keine Module lspci -v
für die Geräte aufgelistet. Die Ausgabe von lspci -v
fü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/173287schlägt vor, dies zu tun echo 0 > /sys/bus/pci/slots/$N/power
, und ich habe eine, in /sys/bus/pci/slots/$N
der $N
die Nummer des Steckplatzes aufgeführt ist lspci -v
, aber es gibt keine power
Datei.
EDIT 3: Das Hinzufügen der Modaliase von /sys/bus/pci/devices/[device]/modalias
zu modprobe.blacklist=
Kernel-Parametern hat keine Auswirkung auf Ubuntu Mainline-Kernel vonhttp://kernel.ubuntu.com/~kernel-ppa/mainline/und ein benutzerdefinierter 4.0.5-Build mit make localmodconfig
und Aktivierung aller PCI-Optionen führt dazu, dass der Bildschirm „Initramfs [Version] wird geladen“ für immer sichtbar bleibt, während die Grafikkarte noch aufheizt.
Antwort1
Einfachster Weg
Am einfachsten ist es, das Kernelmodul auf die schwarze Liste zu setzen und zu entladen. Sie können das aktuelle Modul sehen, indem Sie zuerst die Busnummer mit folgendem Befehl überprüfen:
sudo lspci | egrep -i "(vga|video)"
Beachten Sie das erste Feld mit einer Nummer wie 01:00.0
. Zeigen Sie dann das verwendete Modul an:
sudo lspci -vs 01:00 | grep modules
Bei HDMI-fähigen Geräten gibt es normalerweise ein Untergerät wie 01:00.1, das das HDMI-Audiogerät ist. Setzen Sie das auch auf die schwarze Liste.
Fügen Sie beide /etc/modprobe.d/blacklist oder blacklist.conf hinzu, wobei der Blacklist-Befehl vorangestellt ist. Zum Beispiel „blacklist radeon“ und „blacklist „snd-hda-intel“ usw.
Wenn Sie das Gerät verwenden möchten, können Sie sudo modprobe [module name]
es einfach aktivieren.
Benutzerdefinierter Weg
Wenn das nicht ausreicht oder Sie dasselbe Modul für die GPU (integrierter oder zweiter Adapter) verwenden, das Sie tatsächlich verwenden, binden Sie das zu deaktivierende Modul an pci-stub
den Treiber. Am besten geht das über die Kernel-Befehlszeile beim Booten. Fügen Sie einfach hinzu
pcistub="pci-stub.ids=<vendorID:deviceID>"
Ersetzen vendorID:deviceID
durch Codes, die Sie finden mit
lspci -nns <your bus number from above e.g. 01:00>
pcistub="pci-stub.ids=1002:6718,1002:aa80"
Wenn Sie es nach der Bindung an pcistub verwenden möchten, können Sie die Bindung über sysfs aufheben und erneut an einen Treiber Ihrer Wahl binden oder (einfacher) neu starten und ohne die Befehlszeile booten.
Ich würde zuerst versuchen, ob es ausreicht, das automatische Laden des Moduls zu deaktivieren (falls verfügbar).
BEARBEITEN:
Es ist möglich, dass der Kernel den nächsten verfügbaren Treiber ausprobiert, wenn Sie einen auf die schwarze Liste setzen. Wenn ja, können Sie diesen auch auf die schwarze Liste setzen, es sei denn, Sie benötigen ihn. Bald gehen ihm die kompatiblen Treiber aus, und das Gerät bleibt ohne Treiber zurück. Es sollte ausgeschaltet (oder zumindest heruntergefahren) werden.
Wenn es sich auch ohne Verwendung eines Kerneltreibers erwärmt, aktualisieren Sie bitte den Beitrag. Das würde mich sehr interessieren.