Ubuntu16.04LTS
amdgpu

Ubuntu 16.04 で AMDGPU Pro ドライバを使う(17.10 推奨)

More than 1 year has passed since last update.

背景

きちんとした OpenGL/OpenCL/Vulkan サポートが必要なため, オープンソースドライバではなく GPU 会社のプロプライエタリなドライバを使いたい時がありますね!

今まで CentOS7 で fglrx ドライバをだましだまし使ってきましたが, どうも CentOS 7.3 でついに kernel version update と X11 周りのライブラリのバージョンの差異で fglrx ドライバが動かなくなりました.

Vulkan にも対応し今後のメインストリーム(?)である AMDGPU Pro ドライバが, 一応 16.50 で正式リリースされたっぽい + RHEL 7.3 対応だったので, インストール試みましたが, DKMS コンパイル失敗したりブートしても画面真っ黒(Xorg.log をみると no display found error とか)だったりして詰んでしまいました.

そこでせっかくの機会なので Ubuntu 16.04 に乗り換えて AMDGPU Pro ドライバを使おうとしましたが, ここでもそのままでは動かず, いろいろ試行錯誤と調べものをしたところ, どうもデフォルトで入っている(?) radeon モジュールが原因だったようでした.

環境

  • Intel SandyBridge Xeon CPU
  • Hawaii 系 AMD GPU
  • AMDGPU Pro driver 16.50
  • Ubuntu 16.04.1 Desktop 版をインストール

Ubuntu 16.04 Desktop 版インストール

そもそもまず Desktop 版インストーラーで画面が出ませんでした... 幸いにも GPU 内臓 Intel CPU だったので, まずは iGPU にディスプレイをつないで, Ubuntu をインストールしました.

iGPU がない環境では, まずはサーバ版でコマンドラインでインストールするとよいかもしれません.

Ubuntu を upgrade しておきます(kernel 4.4.0-57)

AMDGPU Pro ドライバインストール

Ubuntu 16.04 ドライバパッケージは ./amdgpu-pro-install を実行するだけで, そのまま問題なくインストールできました.

デバッグしやすいようにコンソールログインできるように ssh 接続環境を整えてから, AMD GPU にディスプレーケーブルを切り替え, リブートします.

radeon モジュールを disable にする.

どうもデフォルトでは radeon モジュールを読み込むらしく, VGACON disables amdgpu kernel modesetting というエラーがカーネル起動時に出てします.

そして, GDM ログイン画面は表示されますが, ログインしても画面がバグってまたログイン画面に戻ってしまいます...

そこで, grub の起動設定で

radeon.modeset=0 blacklist=radeon

を追加し, radeon モジュールを読み込まないようにします.

Xserver のほうの radeon モジュールも消しておくと確実かもしれません.
(xserver-xorg-video-radeon パッケージ)

これでひとまず AMDGPU(OpenGL HW アクセラレーション有効) が使えるようになりました.

nomodeset は?

全ての GPU に有効な nomodeset は設定するとおかしくなったので, 今回は不要のようです.

Hawaii 系以外の GPU では違う設定が必要かもしれません.

問題点

PC を常時運転していると, 時々画面が suspend から戻らなくなる時があります(X プロセスが defunct になり, リブートしか手段がない). エラーを見ると cursor が見つからないみたいなメッセージです.

どうもこのパッチで治っているようなので, とりえず Gnome 設定で, 画面の suspend 機能を off にし, 16.50 の次期リリースを待つことになるでしょうか.
(追記: 16.60 でも治ってませんでした. 安定運用するにはもう少し待たないとダメかも)

https://lists.freedesktop.org/archives/amd-gfx/2017-January/004647.html

追記: 17.10 + kernel 4.4.0-71 でどうもなおったっぽいようです!
追記: 17.10 + kernel 4.4.0-78 で一日くらい経つとブラックアウト(復帰しない)になりました...
追記: 17.10 + kernel 4.4.0-79 でどうもなおったっぽいようです!

TODO

  • fglrx では aticonfig で xorg.conf をいじる必要がありましたが, amdgpu では aticonfig/amdconfig というツールはなくなって xorg.conf は作らなくてよくなったっぽい(別ルートで X11 の設定をする?)
  • Vulkan on Linux をためす.

まとめ

AMDGPU black screen とかで検索しても, どうやったら動かせるかではなくて単に amdgpu をアンインストールしろ, という回答しかヒットしなくて, これもまたつらみしかないですね.