最も簡単な方法

最も簡単な方法

私はサーバーを稼働させており、VGA に接続された画面でサーバーにアクセスできるようにしたいと考えています (非常にまれですが、ほとんどの場合、SSH 経由でアクセスします)。そのため、PCI-e グラフィック カードを接続し、VGA ケーブルを取り外しました。グラフィック カードは受動的に冷却されており、ケースを開けて冷たい本体に触れると、顕著な熱を感じ、エネルギーを消費していることがわかります (近くに熱エネルギーを何らかの方法で伝達できる消費者はいません)。

カードを抜くと(使用していないグラフィック カードを無効にする必要がありますか?) 画面を接続するたびに、それを組み込む必要があります。エネルギー消費と同様に、それを避けたいと思います。

無効化と再有効化は OS レベル (SSH 経由など) で行う必要があります。そうしないと、UEFI を構成するための画面が必要になり (または、他に選択肢がない盲目的に行う)、鶏が先か卵が先かという問題に遭遇することになります。

私は Linux 4.0.2 で Ubuntu 15.04 を使用しています。グラフィック カードには XFX HD 5450 850M というラベルが付いており、VGA、HDMI、D-SUB コネクタが付いています。マザーボードは統合グラフィックのない ASRock X99-Extreme です。

編集:ブラックリストに登録した後、sudo lspci -v(以下の@WhimsicalWombatの有望な回答に従って)リストされているモジュールを使用しました(私の場合はmodprobe.blacklist=module_to_blacklistカーネルパラメータを使用する必要がありました -https://askubuntu.com/questions/110341/how-to-blacklist-kernel-modules詳細については、radeonおよびを参照してくださいsnd_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: のmodaliasesをカーネルパラメータ/sys/bus/pci/devices/[device]/modaliasに追加してもmodprobe.blacklist=、Ubuntuのメインラインカーネルには影響しません。http://kernel.ubuntu.com/~kernel-ppa/mainline/また、すべての PCI オプションを有効にしたカスタム 4.0.5 ビルドでは、make localmodconfigグラフィック カードがまだ加熱している間、「initramfs [バージョン] をロードしています」画面がずっと表示されたままになります。

答え1

最も簡単な方法

最も簡単な方法は、カーネル モジュールをブラックリストに登録してアンロードすることです。まず次のコマンドでバス番号を確認すると、現在のモジュールを確認できます。

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

のような番号の最初のフィールドに注意してください01:00.0。次に、使用中のモジュールを表示します。

sudo lspci -vs 01:00 | grep modules

HDMI 対応デバイスの場合、通常、HDMI オーディオ デバイスである 01:00.1 のようなサブデバイスがあります。これもブラックリストに追加します。

/etc/modprobe.d/blacklist または blacklist.conf の両方に、blacklist コマンドを先頭に追加します。たとえば、「blacklist radeon」や「blacklist "snd-hda-intel"」などです。

デバイスを使用したい場合は、sudo modprobe [module name]有効にするだけです。

カスタム方法

それでも十分でない場合、または実際に使用しているGPU(内蔵または2番目のアダプタ)に同じモジュールを使用している場合は、無効にしたいものを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 経由でバインドを解除し、選択したドライバーに再バインドするか、(より簡単な方法として) 再起動してコマンドラインなしで起動することができます。

可能であれば、まずはモジュールの自動ロードを無効にするだけで十分かどうか試してみます。

編集:

ドライバーをブラックリストに登録した場合、カーネルが次に利用可能なドライバーを試す可能性があります。その場合、必要でない限り、そのドライバーもブラックリストに登録できます。互換性のあるドライバーがすぐになくなり、デバイスはドライバーなしの状態になり、電源がオフ (または少なくとも低) になります。

カーネル ドライバーを使用していないのに発熱している場合は、投稿を更新してください。そのことをぜひお聞かせください。

関連情報