AMD GPUですが、Intel統合グラフィックスで表示されます

AMD GPUですが、Intel統合グラフィックスで表示されます

Ubuntu 12.04 で、モニターをオンボードの Intel グラフィックスに接続しました。 ATI Radeon 6770 を OpenCL タスク (例: ビットコイン マイニング) に使用したいと思います。

今のところ、ati ドライバーを動作させる方法がわかりません。「aticonfig --initial -f」を呼び出すと、常に Intel グラフィックスを無視する新しい xorg.conf が書き込まれます。起動時に、モニターを ati カードに接続した場合にのみ動作します。

そこで、xorg.conf を手動で変更し、次のようになりました。

Section "ServerLayout"
    Identifier     "Default Monitor"
    Screen      0  "myscreen" 0 0
    Screen      1  "deadscreen" RightOf "myscreen"
EndSection

Section "Module"
EndSection

Section "Monitor"
    Identifier "Default Monitor"
    Option "VendorName" "Monitor Vendor"
    Option "ModelName" "Monitor Name"
    Option "DPMS" "true"
EndSection

Section "Monitor"
    Identifier "null Monitor"
    Option         "Enable" "false"
EndSection

Section "Device"
    Identifier "Intel Integrated Graphics"
    Driver     "intel"
    BusID      "PCI:0:2:0"
    Screen 0
EndSection

Section "Device"
    Identifier  "aticonfig-Device[0]-0"
    Driver      "fglrx"
    BusID       "PCI:1:0:0"
    Screen 1
EndSection

Section "Screen"
    Identifier "myscreen"
    Device     "Intel Integrated Graphics"
    Monitor    "Default Monitor"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "Screen"
    Identifier "deadscreen"
    Device     "aticonfig-Device[0]-0"
    Monitor    "null Monitor"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

/var/log/Xorg.0.log で X が両方のドライバーを起動しようとしていることがわかったので、これが正しい方法だと思います。ただし、fglrx ドライバーはクラッシュしているようです (xorg.0.log の終わり):

Backtrace:
[     6.625] 0: /usr/bin/X (xorg_backtrace+0x26) [0x7fb5cd41b846]
[     6.625] 1: /usr/bin/X (0x7fb5cd293000+0x18c6ea) [0x7fb5cd41f6ea]
[     6.625] 2: /lib/x86_64-linux-gnu/libpthread.so.0 (0x7fb5cc5b9000+0xfcb0) [0x7fb5cc5c8cb0]
[     6.625] 3: /usr/lib/x86_64-linux-gnu/xorg/extra-modules/extra-modules.dpkg-tmp/modules/drivers/fglrx_drv.so (xdl_xs111_atiddxGetGPUMapInfo+0x1b1) [0x7fb5c88e16b1]
[     6.625] 4: /usr/lib/x86_64-linux-gnu/xorg/extra-modules/extra-modules.dpkg-tmp/modules/drivers/fglrx_drv.so (atiddxGetGPUMapInfo+0xd) [0x7fb5c87bcc0d]
[     6.625] 5: /usr/lib/x86_64-linux-gnu/xorg/extra-modules/extra-modules.dpkg-tmp/modules/extensions/libglx.so (0x7fb5ca12d000+0x1ab29) [0x7fb5ca147b29]
[     6.625] 6: /usr/lib/x86_64-linux-gnu/xorg/extra-modules/extra-modules.dpkg-tmp/modules/extensions/libglx.so (0x7fb5ca12d000+0x1cf8c) [0x7fb5ca149f8c]
[     6.625] 7: /usr/lib/x86_64-linux-gnu/xorg/extra-modules/extra-modules.dpkg-tmp/modules/extensions/libglx.so (0x7fb5ca12d000+0x1ee55) [0x7fb5ca14be55]
[     6.626] 8: /usr/bin/X (InitExtensions+0x99) [0x7fb5cd350069]
[     6.626] 9: /usr/bin/X (0x7fb5cd293000+0x3d605) [0x7fb5cd2d0605]
[     6.626] 10: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xed) [0x7fb5cb44e76d]
[     6.626] 11: /usr/bin/X (0x7fb5cd293000+0x3daad) [0x7fb5cd2d0aad]
[     6.626] Segmentation fault at address 0x14
[     6.626] 
Caught signal 11 (Segmentation fault). Server aborting
[     6.626] 

ディスプレイに統合グラフィックスを使用する場合に ATI カードを構成する方法についてヒントをいただけると大変嬉しいです。

アップデート

私は jjhughes57 の設定のほとんどを使用し、Intel 上で X サーバーを正常に起動しました (ただし、面白いことにキーボード レイアウトは変更されています)。

残念ながら、2 番目の X サーバー (fglrx) は完全に起動しません。起動後すぐにシャットダウンします。

[     6.265] (II) fglrx(0): Restoring Recent Mode via PCS is not supported in RANDR 1.2 capable environments
[     6.296] (II) UnloadModule: "mouse"
[     6.296] (II) Unloading mouse
[     6.296] (II) UnloadModule: "kbd"
[     6.296] (II) Unloading kbd
[     6.298] (II) fglrx(0): Shutdown CMMQS
[     6.298] (II) fglrx(0): [uki] removed 1 reserved context for kernel
[     6.298] (II) fglrx(0): [uki] unmapping 8192 bytes of SAREA 0x2000 at 0x7fbef8209000
[     6.337] (II) fglrx(0): Interrupt handler Shutdown.
[     6.470]  ddxSigGiveUp: Closing log
[     6.470] Server terminated successfully (0). Closing log file.

何が間違っているのかヒントがあれば教えてください。

解決

私の場合、解決法は非常に簡単でした。主に xorg.conf (jjhughes57 より) が私を正しい方向に導いてくれました。残りの問題は /etc/lightdm/lightdm.conf で修正できます。私の最終バージョンは次のとおりです。

[LightDM]
seats=Seat:0 Seat:1

[SeatDefaults]
autologin-user-timeout=0
autologin-session=lightdm-autologin
greeter-session=lightdm-gtk-greeter


[Seat: 0]
xserver-layout=seat0
xserver-command=/usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -sharevts -novtswitch
autologin-guest=false
autologin-user=fx
autologin-user-timeout=0
autologin-session=lightdm-autologin
user-session=ubuntu

[Seat: 1]
xserver-layout=seat1
xserver-command=/usr/bin/X :1 -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -sharevts -novtswitch
autologin-guest=true
user-session=ubuntu

1 つの問題は、「/usr/share/xgreeters/lightdm-gtk-greeter.desktop」が見つからないことでした。lightdm-gtk-greeter を再度適切にインストールすると、2 番目の X サーバーが正常に起動しました。次に、次の要件を満たす必要があります。

  1. Xは:1で接続を受け入れる必要があります(:1があなたの
  2. fglrx-display) ユーザーは X クライアントを開く権限が必要です:1

実は、最初に autologin-guest=false を試しましたが、うまくいきませんでした。autologin-guest=true で、ユーザー セッション (ゲスト ユーザーとして) を実行している場合は、X アクセス制御を無効にする必要があります (少なくともこれが最も簡単です)。例: ディスプレイ :0 で、root として:

# su - guest-6ht0hq
guest-6ht0hq$ echo $DISPLAY
:0.0
guest-6ht0hq$ export DISPLAY=:1
guest-6ht0hq$ xhost +
access control disabled, clients can connect from any host
guest-6ht0hq$

次に別の端末で(rootとして)次の操作を実行します。

# DISPLAY=:1.0 aticonfig --adapter=0 --od-getclocks
Adapter 0 - AMD Radeon HD 6700 Series 
                            Core (MHz)    Memory (MHz)
           Current Clocks :    850           1000
             Current Peak :    850           1000
  Configurable Peak Range : [500-970]     [1000-1430]
                 GPU load :    0%
#

答え1

それで、私はこの問題の解決にかなり近づいています。私が考えた基本的なアイデアは、マルチシート セッションでした。これにより、ATI カードが独自の X セッションを持ち、Intel ディスプレイが独自の X セッションを持つことができます。

  1. PCIEがシステムのデフォルトディスプレイであることを確認し、システムBIOSでオンボードGPUが有効になっていることを確認します。
  2. /etc/X11/xorg.conf を次のように変更します...

Section "ServerLayout"
        Identifier     "seat0"
        Screen      0  "My screen 1" 0 0
        Option      "Clone" "off"
        Option      "AutoAddDevices" "off"
        Option      "DisableModInDev" "true"
        Option      "SingleCard" "on"   # use this to simplfied isolatedevice option
        Option      "AllowEmptyInput"       "true"
EndSection

Section "ServerLayout"
        Identifier     "seat1"
        Screen         "aticonfig-Screen[0]-0" 0 0
        Option      "Clone" "off"
        Option      "AutoAddDevices" "off"
        Option      "DisableModInDev" "true"
        Option      "SingleCard" "on"   # use this to simplfied isolatedevice option
        Option      "AllowEmptyInput"       "true"
EndSection

Section "Module"
EndSection

Section "InputClass"
    Identifier      "Ignore Streamzap IR"
    MatchProduct    "Streamzap"
    MatchIsKeyboard "yes"
    Option      "Ignore" "true"
EndSection

Section "Monitor"
    Identifier   "aticonfig-Monitor[0]-0"
    Option      "VendorName" "ATI Proprietary Driver"
    Option      "ModelName" "Generic Autodetecting Monitor"
    Option      "DPMS" "true"
EndSection

Section "Device"
    Identifier  "aticonfig-Device[0]-0"
    Driver      "fglrx"
    Option      "Capabilities" "0x00000800"
    BusID       "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "aticonfig-Screen[0]-0"
    Device     "aticonfig-Device[0]-0"
    Monitor    "aticonfig-Monitor[0]-0"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "Monitor"
        Identifier   "My monitor 1"
EndSection

Section "Device"
        Identifier  "Sandybridge"
        Driver      "intel"
        BusID       "PCI:0:2:0"
EndSection

Section "Screen"
        Identifier "My screen 1"
        Device     "Sandybridge"
        Monitor    "My monitor 1"
        DefaultDepth     24
        SubSection "Display"
                Depth     24
                Modes    "1280x720"
        EndSubSection
EndSection
  1. 最後に/etc/lightdm/lightdm.confを編集する必要がありました



[LightDM]
seats=Seat:0 Seat:1

[SeatDefaults]
autologin-user-timeout=0
autologin-session=lightdm-autologin
greeter-session=lightdm-gtk-greeter


[Seat: 0]
xserver-layout=seat0
xserver-command=/usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -sharevts -novtswitch
autologin-guest=false
autologin-user=joe
autologin-user-timeout=0
autologin-session=lightdm-autologin
greeter-session=lightdm-gtk-greeter
user-session=mythbuntu

[Seat: 1]
xserver-layout=seat1
xserver-command=/usr/bin/X :1 -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -sharevts -novtswitch

両方のモニターが起動しました。


sudo aticonfig --adapter=0 --od-getclocks

動作します...ただし、これにより現在のエラーを回避できます。

答え2

カードにモニターを接続するか、ダミープラグそれ以外の場合、カードは機能しません。モニターに 2 つの接続がある場合は、そのうちの 1 つをカードに接続し、その入力を使用しないようにすることができます。

関連情報