最簡單的方法

最簡單的方法

我有一個正在運行的伺服器,我希望能夠透過連接到 VGA 的螢幕來存取它(很少,大多數時候是透過 SSH 存取的)。因此我插入了 PCI-e 顯示卡並拔掉了 VGA 電纜。顯示卡是被動冷卻的,如果我打開機殼並觸摸涼爽的機身,我可以感覺到明顯的溫暖,並得出結論它正在消耗能量(附近沒有消費者可以以任何方式傳輸熱能)。

如果我拔掉卡片(如建議的那樣)我應該禁用未使用的顯示卡嗎?)每次我想連接螢幕時,我都必須內建它。我想避免這種情況以及能源消耗。

取消和重新啟動需要在作業系統層級進行(例如透過 SSH),因為否則我需要一個畫面來設定 UEFI(或盲目地這樣做,這是別無選擇)並遇到雞生蛋蛋生雞的情況。問題。

我正在使用 Ubuntu 15.04 和 Linux 4.0.2。此顯示卡標示為 XFX HD 5450 850M,並具有 VGA、HDMI 和 D-SUB 連接器。主機板是華擎X99-Extreme,不含整合式顯示卡。

編輯:將使用的模組列入黑名單後sudo lspci -v(遵循下面@WhimsicalWombat的有希望的答案)(在我的情況下,我必須使用modprobe.blacklist=module_to_blacklist內核參數 - 請參閱https://askubuntu.com/questions/110341/how-to-blacklist-kernel-modules有關更多詳細資訊 - 對於radeonsnd_hda_intel),PCIe 顯示卡仍然會發熱(被動冷卻器的溫度 > 60 度,並且附近沒有熱源),並且lspci -v設備中沒有列出任何模組。lspci -v設備的輸出不是

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

編輯2:https://askubuntu.com/a/138953/173287建議這樣做echo 0 > /sys/bus/pci/slots/$N/power,我有一個在其中列出的插槽編號/sys/bus/pci/slots/$N,但沒有檔案。$Nlspci -vpower

編輯 3:將模態別名加入/sys/bus/pci/devices/[device]/modalias核心modprobe.blacklist=參數對 Ubuntu 主線核心沒有影響http://kernel.ubuntu.com/~kernel-ppa/mainline/自訂 4.0.5 版本以及make localmodconfig所有 PCI 選項的啟動會導致「正在載入 initramfs [版本]」畫面在圖形卡仍在加熱時始終保持可見。

答案1

最簡單的方法

最簡單的方法是將其列入黑名單並卸載其核心模組。您可以先檢查總線號碼來查看其目前模組:

sudo lspci | egrep -i "(vga|video)"

請注意第一個欄位的編號如01:00.0。然後顯示正在使用的模組:

sudo lspci -vs 01:00 | grep modules

對於支援 HDMI 的設備,通常有一個像 01:00.1 這樣的子設備,它是 HDMI 音訊設備。也將其列入黑名單。

新增 /etc/modprobe.d/blacklist 或 blacklist.conf,前面加上 blacklist 指令。例如“黑名單 radeon”和“黑名單“snd-hda-intel”等。

如果您想使用該設備,只需sudo modprobe [module name]啟用它即可。

客製化方式

如果這還不夠,或者您實際使用的 GPU(整合或第二適配器)使用相同的模組,請將要停用的模組綁定到pci-stub驅動程式。最好的方法是在啟動時使用內核命令行。只需添加

pcistub="pci-stub.ids=<vendorID:deviceID>"

替換vendorID:deviceID為您可以找到的程式碼

lspci -nns <your bus number from above e.g. 01:00>
pcistub="pci-stub.ids=1002:6718,1002:aa80"

如果您想在將其綁定到pcistub 後使用它,您可以透過sysfs 取消綁定並將其重新綁定到您選擇的驅動程序,或者(更簡單)重新啟動並在沒有命令行的情況下啟動。

如果可用的話,如果僅停用模組自動加載就足夠了,我會先嘗試。

編輯:

如果您將某個驅動程式列入黑名單,核心可能會嘗試下一個可用的驅動程式。如果是這樣,除非需要,否則您也可以將其列入黑名單。它很快就會耗盡相容的驅動程序,並使設備沒有驅動程序,並且應該將其斷電(或至少低電)。

如果即使沒有使用核心驅動程式它也會發熱,請更新帖子。我很想聽聽這個。

相關內容