私はこの問題に関する他のスレッドのいくつかを知っていますが、それらで見つかったオプションは成功しませんでした:
Sudo su
cat /sys/kernel/debug/vgaswitcheroo/switch
与える
cat: /sys/kernel/debug/vgaswitcheroo/switch: No such file or directory
xorg.conf
がIntelデバイスのみをセットアップしているためでしょうか?
/sys/kernel/debug
がマウントされているように見えますが、起動オプションがありません:
cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.11.0-15-generic.efi.signed root=UUID=8a15962e-
ad4d-4eb0-96af-37d167313e92 ro quiet splash vt.handoff=7
モードセットの場合:
cat /sys/module/i915/parameters/modeset
-1
それが問題なのかどうかはよくわかりませんか?しかし、i915.modeset=1 radeon.modeset=1
オプションを使用して起動しようとしましたが、モードセットが実際に1であることを確認しました。また、mount | grep /sys/kernel/debug
を確認しました
none on /sys/kernel/debug type debugfs (rw)
これが正しくマウントされます。
lshw -C display
の表示:
*-display
description: VGA compatible controller
product: Haswell-ULT Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 09
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:60 memory:f0000000-f03fffff memory:e0000000-efffffff ioport:5000(size=64)
*-display
description: Display controller
product: Sun XT [Radeon HD 8670A/8670M/8690M]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:06:00.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi bus_master cap_list rom
configuration: driver=radeon latency=0
resources: irq:65 memory:d0000000-dfffffff memory:f0400000-f043ffff ioport:3000(size=256) memory:f0440000-f045ffff
私のカーネルは適切なオプションでコンパイルされているようです:
grep -i switcheroo /boot/config-*
/boot/config-3.11.0-12-generic:CONFIG_VGA_SWITCHEROO=y
/boot/config-3.11.0-15-generic:CONFIG_VGA_SWITCHEROO=y
では、なぜvgaswitcheroo
が見つからないのでしょうか?
見つけました this
There are two versions of hybrd graphics: MUXed and MUX-less. MUXed have a
display MUX to switch the displays between the discrete and integrated cards.
MUXed systems can be switched using vgaswitcheroo. MUX-less do not have a
display MUX and the displays are only connected to the integrated card. On
MUX-less systems, the discrete card is solely for rendering, not display. X
Server 1.14 is required to support rendering and display from different cards.
Most new laptops (2011+) are MUX-less.
だから、私のシステム(ごく最近のラップトップ)がMUX-less
(つまり、Intelカードだけがディスプレイに実際に接続されている)であり、AMD Catalyst Control Centre
(fglrx
をインストールするのに十分な勇気/愚かさ)これは実際には次のとおりです。 "-> iGPUで計算を実行し、ディスプレイに直接送信します。 BIOSでGPUを切り替えることもできません。これは、MUX-less
も推奨しています。
したがって、おそらくVGAスイッチャーを使用することはできません。
もう1つの考慮事項は、radeon
ドライバーがまだ私のカードを公式にサポートしていないことです(8670Mコード名Mars XTソーラーシステムシリーズ、OLANDと混同しないでください)。したがって、オープンソースのドライバーで起動すると、radeonに対してNo screens found
のようなメッセージが表示されます。 switcheroo
がradeonとIntelの両方を必要とすることを考えると、radeonドライバーは私のカードをサポートしていないため、何らかの理由で失敗する可能性があります。
これが当てはまる場合、MUX-less
システムでATI/Intelカード(fglrx
なし)をどのように切り替えるかという問題につながります。
this による
無数のシステム
最初に行う必要があるのは、ディスクリートGPUがまだオンになっていない場合にオンにすることです。
# echo ON > /sys/kernel/debug/vgaswitcheroo/switch
このコマンドを再度発行して、これが機能したことを確認します。
# cat /sys/kernel/debug/vgaswitcheroo/switch
ここで、xrandrがカードに割り当てたIDを知る必要があります。ルートではなく、通常のユーザーとしてこれを再度実行します。
$ xrandr --listproviders
Providers: number : 3
Provider 0: id: 108 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 2 name:Intel
Provider 1: id: 69 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 2 name:radeon
Provider 2: id: 69 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 2 name:radeon
私の場合、3枚のカードがリストされます。 1と2の両方が同じIDを持っていることに注意してください。この場合、ディスクリートカードのIDは69で、統合カードのIDは108です。
最後に、レンダリングにXを使用してディスクリートGPUを使用するように指示する必要があります。
$ xrandr --setprovideroffloadsink 69 108
最初の番号は個別のカードで、2番目の番号は統合カードです。これが機能したことを確認するには:
$ DRI_PRIME=1 glxinfo | grep renderer
OpenGL renderer string: Gallium 0.4 on AMD TURKS
レンダラーとしてGallium 0.4を取得する必要があります。これ以降、すべての3DアプリがATIカードにレンダリングされ、Xを再起動する必要はありません。
Kubuntu 13.10で私のlenovo u400で働いていました。