したがって、2つのビデオカードがあります。
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
01:00.0 VGA compatible controller: ATI Technologies Inc M93 [Mobility Radeon HD 4500 Series] (rev ff)
私たちのタスクは、2つのビデオカードを切り替える方法を学習するか、少なくとも2番目のビデオカードの電源をオフにすることです。
最初の方法。 モッキンバードを殺すために。
最初の方法は簡単です。 Lenovoノートブック用に作成された既製のモジュール(素晴らしいHPにも適しています)を取り、コアにねじ込みます。 これを行うには、debパッケージと動的モジュールねじ込みシステム-DKMSを使用します。
モジュールを気取らずに呼び出しました-hp_acpi_kill。
モジュールのソースコードを取得し、hp_acpi_kill.cという名前で保存します
次に、 Makefileを配置します 。
これは、OpenSUSEの未知の愛好家によって書かれた必須モジュールです。
次に、新しいカーネルバージョンごとにモジュールを再構築しないように、DKMSの構成を記述する必要があります。 幸いなことに、DKMSは非常に単純であり、構成は短いです。 dkms.confとしてダウンロードして保存します。 このファイルでは、コンパイルされたモジュールの名前、バージョン、モジュールのコンパイルおよびインストール方法を示します。 ここでやめることができるようです-モジュールをDKMSに追加し、組み立ててインストールします-しかし、私たちはまだ便利な配布キットのユーザーであり、何を理解していないのですか したがって、モジュールをパッケージにラップします。
パッケージアセンブリの詳細については説明しません。Habrで既に多くのことを書いているので、通常のファイルセットに加えて、* .postinst、*。Postrm、* .prermファイルが必要です。したがって、モジュールはDKMSで登録およびコンパイルされます。パッケージをインストールし、アンインストール中にクリーンアップします。 必要なすべてのファイルを含むアーカイブをここからダウンロードします。
debuildまたはdpkg-buildpackageコマンドを使用してパッケージを収集し、hp_acpi_killモジュール名を選択してインストールし、/ etc / modulesに追加します。システムが起動すると、ディスクリートグラフィックスカードがオフになり、消費電力が急激に低下します。
デバイスのリストを見ると、ビデオカードはシステムに表示されていますが、検出されていません。
$ lshw
...
*-generic:0
product: Illegal Vendor ID
vendor: Illegal Vendor ID
physical id: 0
bus info: pci@0000:01:00.0
version: ff
width: 32 bits
clock: 66MHz
capabilities: bus_master vga_palette cap_list rom
configuration: driver=radeon latency=255 maxlatency=255 mingnt=255
resources: irq:31 memory:c0000000-cfffffff ioport:3000(size=256) memory:e4400000-e440ffff memory:e4420000-e443ffff
2番目の方法。 vga_switcheroo
2番目の方法では、少しのトラフィックと少しの時間が必要になります。 実際のところ、カーネルのバージョン2.6.34がリリースされたのはそれほど前のことではなく、これにはビデオカードを切り替えるように設計された新しい興味深いモジュールvga_switcherooが含まれていました。 Launchpadとkernel.ubuntu.comでこのカーネルのパッケージを見つけることもできますが、モジュールはデフォルトの設定でオフになっています-ビデオカードを切り替えるための便利なグラフィックツールが発明されていないためでしょう。
したがって、開始するには、ランチパッドからソースパッケージをダウンロードします(Maverick Meerkat用に設計されていますが、私たちにとってもうまく機能します)。
$ wget launchpad.net/ubuntu/+archive/primary/+files/linux_2.6.34-2.9.dsc
$ wget launchpad.net/ubuntu/+archive/primary/+files/linux_2.6.34-2.9.tar.gz
開梱:
$ dpkg-source -x linux_2.6.34-2.9.dsc
では、linux-2.6.34ディレクトリに移動して、 お気に入りのエディターでdebian.master / config / config.common.ubuntuファイルを開きましょう。 「#CONFIG_VGA_SWITCHEROO is not set」という行を見つけて、「CONFIG_VGA_SWITCHEROO = y」に置き換えます(引用符は不要です)。
念のため、別のdebian / config /実施ファイルを開き、その中に「value CONFIG_VGA_SWITCHEROO y」という行を追加します-これは、アセンブリ中に単一の感染がパラメータセットを破損しないことを確認するのに役立ちます。
debuildコマンドを使用してビルドし(パッケージのビルド時にすべてが収集されるため、ビルドに時間がかかります)、インストールします。
i386の代わりに64ビットシステムを使用している場合、もちろんファイル名はamd64になります。$ sudo dpkg -i linux-headers-2.6.34-2_2.6.34-2.9_all.deb linux-headers-2.6.34-2-generic_2.6.34-2.9_i386.deb linux-image-2.6.34-2-generic_2.6.34-2.9_i386.deb
再起動後にビデオカードを新しいコアに切り替えるにはどうすればよいですか? ソビエト情報局の概要を見てみましょう。
$ cat /sys/kernel/debug/vgaswitcheroo/switch
0:+:Pwr:0000:00:02.0
1: :Off:0000:01:00.0
プラス記号は、アクティブなビデオカード、Pwrマーク-ビデオカードがオン、オフ-オフであることを示しています。 何を変更できますか? vga_switcherooに渡すことができるコマンドの素晴らしいリストがあります:
DIS-個別のグラフィックカードに即座に切り替えます
IGD-統合グラフィックスカードへの即時切り替え
DDIS-個別のグラフィックカードへの遅延切り替え
DIGD-内蔵ビデオカードへの遅延切り替え
オン-未使用のビデオカードを有効にします
OFF-未使用のビデオカードをオフにします
すぐに切り替えてもすぐに効果が得られるわけではないとすぐに言わなければなりません。
したがって、次のコマンドを実行します。
# echo ON > /sys/kernel/debug/vgaswitcheroo/switch #
# echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch #
システム内で「セッションを終了」をクリックし、再度ログインして統合ビデオカードをオフにします。
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
結果を見てみましょう:
$ $ cat /sys/kernel/debug/vgaswitcheroo/switch
0: :Off:0000:00:02.0
1:+:Pwr:0000:01:00.0
Intelカードの電力を無駄にせずに、ゲームをプレイしたり、HDビデオを視聴したりできるようになりました。 また、元に戻して、本格的なビデオカードでさらに少ないエネルギーを消費し、バッテリーを節約できます。 彼女には何年もあります。