web-dev-qa-db-ja.com

/ sys / kernel / debugにvga / vgaswitcherooがない(Ubuntu 13.10)

私はこの問題に関する他のスレッドのいくつかを知っていますが、それらで見つかったオプションは成功しませんでした:

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が見つからないのでしょうか?

3
fpghost

見つけました 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 Centrefglrxをインストールするのに十分な勇気/愚かさ)これは実際には次のとおりです。 "-> 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なし)をどのように切り替えるかという問題につながります。

4
fpghost

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で働いていました。

1
Pablo R