「ATI」の版間の差分
(同期) |
|||
(2人の利用者による、間の19版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category:グラフィック]] |
+ | [[Category:グラフィックス]] |
[[Category:X サーバー]] |
[[Category:X サーバー]] |
||
[[de:ATI]] |
[[de:ATI]] |
||
[[en:ATI]] |
[[en:ATI]] |
||
− | [[es:ATI]] |
||
− | [[fr:ATI]] |
||
− | [[it:ATI]] |
||
− | [[pl:ATI]] |
||
− | [[ru:ATI]] |
||
[[zh-hans:ATI]] |
[[zh-hans:ATI]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|AMDGPU}} |
{{Related|AMDGPU}} |
||
{{Related|Xorg}} |
{{Related|Xorg}} |
||
− | {{Related|Vulkan}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | この記事では、 |
+ | この記事では、AMD (以前は ATI) の古い GPU をサポートする [https://wiki.freedesktop.org/xorg/radeon/ radeon] オープンソースドライバをカバーしています。 |
− | == ドライバーの選択 == |
+ | == 正しいドライバーの選択 == |
使用しているカードにあわせて、[[Xorg#AMD]] を見て適切なドライバーを選択してください。このページでは '''ATI''' ドライバーについて説明します。 |
使用しているカードにあわせて、[[Xorg#AMD]] を見て適切なドライバーを選択してください。このページでは '''ATI''' ドライバーについて説明します。 |
||
− | よくわからない場合、 |
+ | よくわからない場合、まず [[AMDGPU]] ドライバを試してください。AMDGPU ドライバは2015年以降にリリースされたカードのほとんどと適合します。このドライバによってサポートされている機能を調べるには[https://www.x.org/wiki/RadeonFeature この機能表]を見てください。マーケティング名 (例: Radeon HD4330) とチップ名との対応は[[Wikipedia:List of AMD graphics processing units#Features overview|このデコード表]]を見てください。 |
== インストール == |
== インストール == |
||
− | {{Pkg|mesa}} パッケージを[[インストール]]してください。3D アクセラレーションのための DRI ドライバーが含まれています。 |
+ | {{Pkg|mesa}} パッケージを[[インストール]]してください。これには、3D アクセラレーションのための DRI ドライバーと、[[ハードウェアビデオアクセラレーション#AMD/ATI|動画エンコードのアクセラレーション]]のための VA-API/VDPAU ドライバの両方が含まれています。非常に古い GPU ([[Wikipedia:Radeon_R200_series|R200]] 及びそれ以前) の場合は {{Pkg|mesa-amber}} をインストールしてください。 |
− | * 32ビットのアプリケーションに対応するには、[[multilib]] リポジトリ にある {{Pkg|lib32-mesa}} パッケージもインストールしてください。 |
+ | * 32ビットのアプリケーションに対応するには、[[multilib]] リポジトリ にある {{Pkg|lib32-mesa}} ({{Pkg|lib32-mesa-amber}}) パッケージもインストールしてください。 |
− | * DDX ドライバー ([[Xorg]] で |
+ | * DDX ドライバー ([[Xorg]] で 2D アクセラレーションを提供します) については、{{Pkg|xf86-video-ati}} パッケージをインストールしてください。 |
+ | == ロード == |
||
− | {{Pkg|mesa-vdpau}} と {{Pkg|lib32-mesa-vdpau}} パッケージをインストールすると、[[ハードウェアビデオアクセラレーション|動画デコードのアクセラレーション]]がサポートされます。 |
||
+ | |||
+ | radeon カーネルモジュールはシステムの起動時に自動的に正しく読み込まれるはずです。 |
||
+ | |||
+ | うまく行かない場合: |
||
+ | |||
+ | * [[カーネルパラメータ]] に {{ic|nomodeset}} や {{ic|1=vga=}} を使用して'''いない'''ことを確認してください。radeon は [[KMS]] を要求するからです。 |
||
+ | * また、[[カーネルモジュール#ブラックリスト|カーネルモジュールのブラックリスト化]]によって radeon を無効化していないことを確認してください。 |
||
== Xorg の設定 == |
== Xorg の設定 == |
||
38行目: | 39行目: | ||
手動で設定したい場合 {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} を作成して以下を記述してください: |
手動で設定したい場合 {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} を作成して以下を記述してください: |
||
− | Section " |
+ | Section "OutputClass" |
Identifier "Radeon" |
Identifier "Radeon" |
||
+ | MatchDriver "radeon" |
||
Driver "radeon" |
Driver "radeon" |
||
EndSection |
EndSection |
||
49行目: | 51行目: | ||
=== ビデオアクセラレーションを有効にする === |
=== ビデオアクセラレーションを有効にする === |
||
− | [[ハードウェアビデオアクセラレーション]]を見てください。 |
+ | [[ハードウェアビデオアクセラレーション#AMD/ATI]]を見てください。 |
+ | |||
+ | === グラフィカルツール === |
||
+ | |||
+ | * {{App|radeon-profile|Radeon カードの情報を表示する Qt アプリケーション。|https://github.com/marazmista/radeon-profile|{{AUR|radeon-profile-git}}}} |
||
+ | * {{App|CoreCtrl|人気な汎用 GPU/CPU コントローラー。高度な使用法については [https://gitlab.com/corectrl/corectrl/-/wikis/Setup Setup] ページを見てください。|https://gitlab.com/corectrl/corectrl|{{Pkg|corectrl}}}} |
||
=== ドライバーオプション === |
=== ドライバーオプション === |
||
57行目: | 64行目: | ||
ドライバーオプションを有効にする前に {{man|4|radeon}} と [https://www.x.org/wiki/RadeonFeature/#index4h2 RadeonFeature] を読んで下さい。 |
ドライバーオプションを有効にする前に {{man|4|radeon}} と [https://www.x.org/wiki/RadeonFeature/#index4h2 RadeonFeature] を読んで下さい。 |
||
+ | '''アクセラレーションアーキテクチャ''': Glamor は、OpenGL で実装された 2D アクセラレーションメソッドです。R600 (Radeon HD2000 シリーズ) およびそれ以降のグラフィックカードでは、これが[https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/commit/f11531c99fcd6473f58b4d10efaf3efd84304d8e デフォルトで使用されます]。それより古いカードでは、EXA が使用されます。 |
||
− | '''ColorTiling''' と '''ColorTiling2D''' は安全に有効にすることができ、おそらくデフォルトで有効になっています。ほとんどの場合パフォーマンスが向上しますが、R200 以前のカードではサポートされていません。昔のカードでも有効にすることはできますが、処理は CPU に転嫁されます。KMS の ColorTiling2D は R600 (Radeon HD2000 シリーズ) 以降のチップでのみサポートされています: |
||
− | Option " |
+ | Option "AccelMethod" "glamor" |
− | Option "ColorTiling2D" "on" |
||
− | + | [https://www.phoronix.com/scan.php?page=news_item&px=Radeon-AMDGPU-1.19-Updates xf86-video-ati 7.8.0 以降]、'''DRI3''' はデフォルトで有効になっています。 |
|
− | |||
− | Option "DRI" "3" |
||
'''TearFree''' はハードウェアのページフリッピング機能を使ってチラツキを抑えます。このオプションを有効にすると "EnablePageFlip" オプションが無効になります: |
'''TearFree''' はハードウェアのページフリッピング機能を使ってチラツキを抑えます。このオプションを有効にすると "EnablePageFlip" オプションが無効になります: |
||
70行目: | 74行目: | ||
Option "TearFree" "on" |
Option "TearFree" "on" |
||
+ | '''ColorTiling''' と '''ColorTiling2D''' は安全に有効にすることができ、おそらくデフォルトで有効になっています。タイルモードは 3D アプリケーションのパフォーマンスを劇的に向上する可能性があります。DRM モジュールが古すぎる場合や、現在のディスプレイ構成がこのモードをサポートしていない場合、このモードは無効化されます。KMS ColorTiling2D は、R600 (Radeon HD2000 シリーズ) およびそれ以降のチップでのみサポートされています: |
||
− | '''アクセラレーションアーキテクチャ''': Glamor は OpenGL を使用する 2D アクセラレーションメソッドです。R300 以降の新しいドライバーを使用するグラフィックカードで動作します。R600 (Radeon HD2000 シリーズ) 以上のグラフィックカードでは自動的に有効になります [https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=f11531c99fcd6473f58b4d10efaf3efd84304d8e]。他のグラフィックカードでも設定ファイルに以下を追加することで強制的に使用することができます: |
||
− | Option " |
+ | Option "ColorTiling" "on" |
+ | Option "ColorTiling2D" "on" |
||
− | アクセラレーションアーキテクチャとして Glamor を使う場合、'''ShadowPrimary''' オプションを有効にすることができます。2D の |
+ | アクセラレーションアーキテクチャとして Glamor を使う場合、'''ShadowPrimary''' オプションを有効にすることができます。このオプションは、CPU がピクセルデータに高速にアクセスできるようにする "shadow primary" バッファと呼ばれるものと、各ディスプレイコントローラ (CRTC) 用の個別のスキャンアウトバッファを有効化します。これにより、一部の 2D のワークロードが高速化する場合がありますが、他のワークロード (3D やビデオなど) が犠牲になる可能性があります。このオプションを有効にすると "EnablePageFlip" オプションが無効化されることに注意してください: |
Option "ShadowPrimary" "on" |
Option "ShadowPrimary" "on" |
||
− | '''EXAVSync''' オプションはディスプレイコントローラが出力先の領域を引き渡すまでエンジンを止めることでティアリングを減らそうとします。パフォーマンスを犠牲にティアリングを減らしますが、チップによっては不安定になることが知られています |
+ | '''EXAVSync''' オプションは EXA を使用している場合にのみ利用可能です。このオプションは、ディスプレイコントローラが出力先の領域を引き渡すまでエンジンを止めることでティアリングを減らそうとします。パフォーマンスを犠牲にティアリングを減らしますが、チップによっては不安定になることが知られています: |
Option "EXAVSync" "yes" |
Option "EXAVSync" "yes" |
||
84行目: | 89行目: | ||
下は設定ファイル {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}} のサンプルです: |
下は設定ファイル {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}} のサンプルです: |
||
+ | Section "OutputClass" |
||
− | {{bc| |
||
+ | Identifier "Radeon" |
||
− | Section "Device" |
||
+ | MatchDriver "radeon" |
||
− | Identifier "Radeon" |
||
− | + | Driver "radeon" |
|
− | + | Option "AccelMethod" "glamor" |
|
− | + | Option "DRI" "3" |
|
− | + | Option "TearFree" "on" |
|
− | + | Option "ColorTiling" "on" |
|
− | + | Option "ColorTiling2D" "on" |
|
− | EndSection |
+ | EndSection |
− | }} |
||
− | |||
− | {{Tip|調整ツールとしては {{AUR|driconf}} が試せます。vsync, 異方性フィルタリング, テキスチャー圧縮などの設定を変更することが可能です。このツールを使うことでいくつかのプログラム (例: Google Earth) で必要な "Low Impact fallback の無効化" もできます。}} |
||
=== カーネルパラメータ === |
=== カーネルパラメータ === |
||
102行目: | 104行目: | ||
{{Tip|[[カーネルモジュール#情報を取得]]に書かれているように {{ic|systool}} を使うことでパラメータをデバッグすることができます。}} |
{{Tip|[[カーネルモジュール#情報を取得]]に書かれているように {{ic|systool}} を使うことでパラメータをデバッグすることができます。}} |
||
− | '''gartsize''' が自動検知されない場合、{{ic|1=radeon.gartsize=32}} を[[カーネルパラメータ]]に追加して手動で定義することができま |
+ | '''gartsize''' が自動検知されない場合、{{ic|1=radeon.gartsize=32}} を[[カーネルパラメータ]]に追加して手動で定義することができます。 |
+ | {{Note|最近の AMD ビデオカードではこのパラメータはもはや必要ないはずです: |
||
− | もしくは、{{ic|/etc/modprobe.d/radeon.conf}} の modprobe オプションを使っても設定できます: |
||
+ | {{bc|1= |
||
+ | [drm] Detected VRAM RAM=2048M, BAR=256M |
||
+ | [drm] radeon: 2048M of VRAM memory ready |
||
+ | [drm] radeon: 2048M of GTT memory ready. |
||
+ | }} |
||
+ | }} |
||
+ | 変更は次の起動時に有効になります。 |
||
− | options radeon gartsize=32 |
||
+ | ==== PCIe 2.0 の無効化 ==== |
||
− | 詳細や他のオプションについては、radeon の man ページやモジュールの info ページを読んで下さい: {{ic|man radeon}}, {{ic|modinfo radeon}}。 |
||
+ | カーネル 3.6 から、'''radeon''' の PCI Express 2.0 はデフォルトで有効になっています。 |
||
− | ==== PCI-E 2.0 の無効化 ==== |
||
− | |||
− | カーネル 3.6 から、'''radeon''' の PCI-E v2.0 はデフォルトで有効になっています。 |
||
マザーボードによっては不安定になることがあり、[[カーネルコマンドライン]]に {{ic|1=radeon.pcie_gen2=0}} を追加することで無効にできます。 |
マザーボードによっては不安定になることがあり、[[カーネルコマンドライン]]に {{ic|1=radeon.pcie_gen2=0}} を追加することで無効にできます。 |
||
120行目: | 126行目: | ||
=== Gallium ヘッドアップディスプレイ === |
=== Gallium ヘッドアップディスプレイ === |
||
− | + | radeon ドライバーはゲームなどのアプリケーションの上に透明な文字やテキストを描画できるヘッドアップディスプレイ(HUD)の有効化をサポートしています。現在のフレームレートや CPU の使用率 (各 CPU コアごとの使用率やその平均) などの情報が表示できます。HUD は GALLIUM_HUD 環境変数で制御し、以下のパラメータのリストを指定できます: |
|
+ | |||
− | *"fps" - 現在のフレームレートを表示 |
||
− | *" |
+ | * "fps" - 現在のフレームレートを表示 |
− | *" |
+ | * "cpu" - CPU の平均使用率を表示 |
− | *"cpu0 |
+ | * "cpu0" - 1番目の CPU コアの CPU 使用率を表示 |
− | *" |
+ | * "cpu0+cpu1" - 最初の2つの CPU コアの CPU 使用率を表示 |
− | *" |
+ | * "draw-calls" - 画面上のオブジェクトのマテリアルの描画回数を表示 |
− | *" |
+ | * "requested-VRAM" - GPU の VRAM の使用量を表示 |
+ | * "pixels-rendered" - 描画されたピクセル数を表示 |
||
パラメータの完全なリストや GALLIUM_HUD の詳細は glxgears などのシンプルなアプリケーションで "help" パラメータを使うことで確認できます: |
パラメータの完全なリストや GALLIUM_HUD の詳細は glxgears などのシンプルなアプリケーションで "help" パラメータを使うことで確認できます: |
||
+ | |||
− | {{bc|1=# GALLIUM_HUD="help" glxgears }} |
||
+ | # GALLIUM_HUD="help" glxgears |
||
詳しくは [https://lists.freedesktop.org/archives/mesa-dev/2013-March/036586.html メーリングリストの投稿] や [https://kparal.wordpress.com/2014/03/03/fraps-like-fps-overlay-for-linux/ ブログの記事] を見て下さい。 |
詳しくは [https://lists.freedesktop.org/archives/mesa-dev/2013-March/036586.html メーリングリストの投稿] や [https://kparal.wordpress.com/2014/03/03/fraps-like-fps-overlay-for-linux/ ブログの記事] を見て下さい。 |
||
136行目: | 144行目: | ||
== ハイブリッドグラフィック/AMD Dynamic Switchable Graphics == |
== ハイブリッドグラフィック/AMD Dynamic Switchable Graphics == |
||
− | 電力効率の良い GPU (Intel 内蔵カード) とパワフルで電力消費が激しい GPU (Radeon や Nvidia) の、2つの GPU を搭載している最新のノートパソコンで使われている技術です。機能させるには |
+ | 電力効率の良い GPU (一般的に Intel 内蔵カード) とパワフルで電力消費が激しい GPU (一般的に Radeon や Nvidia) の、2つの GPU を搭載している最新のノートパソコンで使われている技術です。機能させるには2つの方法があります: |
− | * GPU の負担が重いアプリケーションを使う必要がないときは、ディスクリートカードを無効にすることができます |
+ | * GPU の負担が重いアプリケーションを使う必要がないときは、ディスクリートカードを無効にすることができます(詳しくは [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] を参照): {{bc|# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}} |
* [[PRIME]] を使用することができます。Linux でハイブリッドグラフィックを使うのに適当な方法と言えますが、ユーザーによる手動の操作が必要です。 |
* [[PRIME]] を使用することができます。Linux でハイブリッドグラフィックを使うのに適当な方法と言えますが、ユーザーによる手動の操作が必要です。 |
||
− | * radeon で [[bumblebee]] も使えます。[[AUR]] に {{AUR|bumblebee-amd-git}}{{Broken package link|{{aur-mirror|bumblebee-amd-git}}}} パッケージが存在します。 |
||
== 省電力機能 == |
== 省電力機能 == |
||
− | 電力管理は vbios に適切な電源状態テーブルがある全てのチップ (R1xx 以降) でサポートされています。 |
+ | {{Note|電力管理は vbios に適切な電源状態テーブルがある全てのチップ (R1xx 以降) でサポートされています。"dpm" は R6xx 以降のチップでサポートされています。}} |
+ | |||
+ | radeon ドライバでは省電力機能はデフォルトで無効化されており、必要であれば手動で有効にする必要があります。 |
||
+ | |||
+ | 3つの方法から選ぶことができます: |
||
+ | |||
+ | # [[#動的電源管理|dpm]] (カーネル 3.13 からデフォルトで有効) |
||
+ | # [[#動的周波数切り替え|dynpm]] |
||
+ | # [[#プロファイルを使用する周波数切り替え|profile]] |
||
詳しくは https://www.x.org/wiki/RadeonFeature/#index3h2 を見てください。 |
詳しくは https://www.x.org/wiki/RadeonFeature/#index3h2 を見てください。 |
||
150行目: | 165行目: | ||
=== 動的電源管理 === |
=== 動的電源管理 === |
||
− | カーネル 3.13 から、DPM (Dynamic power management) は [https://kernelnewbies.org/Linux_3.13#head-f95c198f6fdc7defe36f470dc8369cf0e16898df |
+ | カーネル 3.13 から、DPM (Dynamic power management) は [https://kernelnewbies.org/Linux_3.13#head-f95c198f6fdc7defe36f470dc8369cf0e16898df 多くの AMD Radeon ハードウェア] においてデフォルトで有効になっています。無効にするには、[[カーネルパラメータ]]に {{ic|1=radeon.dpm=0}} を追加してください。 |
{{Tip|DPM は R6xx の GPU でも動作しますが、デフォルトではカーネルによって無効にされています (R7xx 以上でのみ有効になります)。{{ic|1=radeon.dpm=1}} カーネルパラメータを設定すると DPM が有効になります。}} |
{{Tip|DPM は R6xx の GPU でも動作しますが、デフォルトではカーネルによって無効にされています (R7xx 以上でのみ有効になります)。{{ic|1=radeon.dpm=1}} カーネルパラメータを設定すると DPM が有効になります。}} |
||
163行目: | 178行目: | ||
sysfs を使ってモードを変更することが可能です: |
sysfs を使ってモードを変更することが可能です: |
||
+ | |||
# echo battery > /sys/class/drm/card0/device/power_dpm_state |
# echo battery > /sys/class/drm/card0/device/power_dpm_state |
||
175行目: | 191行目: | ||
==== コマンドラインツール ==== |
==== コマンドラインツール ==== |
||
− | * [https://github.com/superjamie/snippets/blob/master/radcard radcard] - DPM の電源状態やレベルを取得・設定できるスクリプト。 |
+ | * [https://github.com/superjamie/snippets/blob/master/radcard radcard]{{Dead link|2024|10|12|status=404}} - DPM の電源状態やレベルを取得・設定できるスクリプト。 |
=== 古い方法 === |
=== 古い方法 === |
||
− | |||
− | radeon ドライバーには手動で省電力機能を使う方法が存在します。以下の3つの方法から選ぶことができます: |
||
− | |||
− | # [[#動的周波数切り替え|dynpm]] |
||
− | # [[#プロファイルを使用する周波数切り替え|profile]] |
||
− | # [[#動的電源管理|dpm]] (カーネル 3.13 からデフォルトで有効) |
||
==== 動的周波数切り替え ==== |
==== 動的周波数切り替え ==== |
||
212行目: | 222行目: | ||
# echo low > /sys/class/drm/card0/device/power_profile |
# echo low > /sys/class/drm/card0/device/power_profile |
||
− | + | === 永続的な設定 === |
|
− | 上述の設定は永続的なものではりません、コンピューターを再起動すると戻ってしまいます。設定を永続化させるために、[[ |
+ | 上述の設定は永続的なものではりません、コンピューターを再起動すると戻ってしまいます。設定を永続化させるために、[[udev]] ルールを使うことができます ([[#プロファイルを使用する周波数切り替え]]の例): |
− | {{hc|/etc/ |
+ | {{hc|/etc/udev/rules.d/30-radeon-pm.rules|2= |
− | w /sys/class/drm/card0/device/power_method - - - - dynpm |
||
− | </nowiki>}} |
||
− | |||
− | もしくは [[udev]] ルールを使うこともできます ([[#プロファイルを使用する周波数切り替え]]の例): |
||
− | |||
− | {{hc|/etc/udev/rules.d/30-radeon-pm.rules|<nowiki> |
||
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low" |
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low" |
||
+ | }} |
||
− | </nowiki>}} |
||
+ | 他の例として、[[#動的電源管理|動的電源管理]] では特定のパフォーマンスレベルを永続的に強制することができます: |
||
− | {{Note|上のルールが失敗する場合は、{{ic|dri/}} を削除してみてください。}} |
||
+ | {{hc|/etc/udev/rules.d/30-radeon-pm.rules|2= |
||
− | ==== グラフィカルツール ==== |
||
+ | KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_dpm_force_performance_level}="high" |
||
− | |||
+ | }} |
||
− | * {{App|Radeon-tray|システムトレイアイコンから Radeon カードの電源プロファイルを操作する小さなプログラム。PyQt4 で書かれており Gnome 以外のユーザーに適しています。|https://github.com/StuntsPT/Radeon-tray|{{AUR|radeon-tray}}{{Broken package link|パッケージが存在しません}}}} |
||
=== ノート === |
=== ノート === |
||
236行目: | 240行目: | ||
GPU が動作している速度を見るには、次のコマンドを実行することで以下のような出力が得られます: |
GPU が動作している速度を見るには、次のコマンドを実行することで以下のような出力が得られます: |
||
− | {{hc|# cat /sys/kernel/debug/dri/0/radeon_pm_info| |
+ | {{hc|# cat /sys/kernel/debug/dri/0/radeon_pm_info| |
− | + | state: PM_STATE_ENABLED |
|
− | + | default engine clock: 300000 kHz |
|
− | + | current engine clock: 300720 kHz |
|
− | + | default memory clock: 200000 kHz |
|
+ | }} |
||
− | </nowiki>}} |
||
ただし値は使用している GPU や radeon ドライバーのバージョン、カーネルのバージョンなどによって変わります。 |
ただし値は使用している GPU や radeon ドライバーのバージョン、カーネルのバージョンなどによって変わります。 |
||
− | 温度センサーは外部の i2c チップか内部の温度センサー (rv6xx-evergreen のみ) によって実装されています。i2c チップを使用する asics の温度を取得するには、あなたのボードで使われているセンサーの適切な hwmon ドライバーをロードする必要があります (lm63, lm64 など)。それで drm が適当な hwmon ドライバーをロードします。内部の温度センサーを使用するボードの場合、drm は hwmon インターフェイスを自動的に設定します。適当なドライバーがロードされていれば、[[ |
+ | 温度センサーは外部の i2c チップか内部の温度センサー (rv6xx-evergreen のみ) によって実装されています。i2c チップを使用する asics の温度を取得するには、あなたのボードで使われているセンサーの適切な hwmon ドライバーをロードする必要があります (lm63, lm64 など)。それで drm が適当な hwmon ドライバーをロードします。内部の温度センサーを使用するボードの場合、drm は hwmon インターフェイスを自動的に設定します。適当なドライバーがロードされていれば、[[lm_sensors]] ツールや {{ic|/sys/class/hwmon}} の sysfs で温度を調べることができます。 |
== ファンの速度 == |
== ファンの速度 == |
||
255行目: | 259行目: | ||
* 標準の値よりも低い値を使うときは GPU の温度に注意してください。 |
* 標準の値よりも低い値を使うときは GPU の温度に注意してください。 |
||
}} |
}} |
||
− | |||
− | 以下のコマンドを実行することでグラフィックカードのファン速度の手動設定を有効にできます (あるいは GPU が複数刺さっている場合、1番目の GPU の手動設定が有効になります): |
||
+ | GPU ファンを制御するには、[[ファンスピード制御#AMDGPU の sysfs によるファン制御]] を見てください(amdgpu と radeon は同じ制御を行います)。 |
||
− | # echo 1 > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1_enable |
||
+ | 永続化させるには、[[#永続的な設定]] の例を見てください。 |
||
− | ファンの速度は 0 から 255 までの値を設定でき、最大速度の 0% から 100% に対応します (以下のコマンドは 20% に設定します): |
||
− | |||
− | # echo 55 > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1 |
||
− | |||
− | 永続的に設定したい場合、上の電源プロファイルの例にある systemd-tmpfiles を使ってください。[[systemd#一時ファイル|systemd-tmpfiles]] のノートに書かれている理由によって機能しない場合、udev ルールを使うことでカードが有効になったときにコマンドを実行することができます。{{ic|/etc/udev/rules.d/99-gpupower}} の例: |
||
− | KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="$HOME/.Xauthority", RUN+="/sbin/sh /etc/conf.d/gpupower" |
||
− | 実行するスクリプト {{ic|/etc/conf.d/gpupower}} は以下のようになります: |
||
− | echo battery > /sys/class/drm/card0/device/power_dpm_state |
||
− | echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level |
||
− | echo 1 > /sys/class/drm/card0/device/hwmon/hwmon2/pwm1_enable |
||
− | echo 55 > /sys/class/drm/card0/device/hwmon/hwmon2/pwm1 |
||
速度を固定したくない場合、温度にあわせてファンの速度を設定するスクリプトを書くなどして手動でファンの速度カーブを定義できます (現在の値は {{ic|/sys/class/drm/card0/device/hwmon/hwmon0/temp1_input}} で確認できます)。 |
速度を固定したくない場合、温度にあわせてファンの速度を設定するスクリプトを書くなどして手動でファンの速度カーブを定義できます (現在の値は {{ic|/sys/class/drm/card0/device/hwmon/hwmon0/temp1_input}} で確認できます)。 |
||
305行目: | 297行目: | ||
=== KMS で TV 出力を強制する === |
=== KMS で TV 出力を強制する === |
||
− | カーネルは次の形式で {{ic|1=video=}} パラメータを認識します (詳しくは [[ |
+ | カーネルは次の形式で {{ic|1=video=}} パラメータを認識します (詳しくは [[カーネルモード設定]]を参照): |
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd] |
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd] |
||
316行目: | 308行目: | ||
"video=9-pin DIN-1:1024x768-24@60e" |
"video=9-pin DIN-1:1024x768-24@60e" |
||
− | |||
− | 現在の mkinitcpio の実装では前に {{ic|#}} を必要とします。例えば: |
||
− | |||
− | root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e" |
||
− | |||
− | * [[GRUB Legacy]] はコマンドラインをそのまま渡すことができます。 |
||
− | * [[LILO]] ではダブルクォートにバックスラッシュが必要です ({{ic|1=# \"video=9-pin DIN-1:1024x768-24@60e\"}} を追加してください)。 |
||
次のコマンドでビデオ出力の一覧を取得できます: |
次のコマンドでビデオ出力の一覧を取得できます: |
||
336行目: | 321行目: | ||
{{Note| |
{{Note| |
||
* ドライバーをインストールした後 HDMI オーディオが動作しないときは、[[Advanced Linux Sound Architecture/トラブルシューティング#HDMI から出力できない]] に書かれた方法でセットアップをテストしてください。 |
* ドライバーをインストールした後 HDMI オーディオが動作しないときは、[[Advanced Linux Sound Architecture/トラブルシューティング#HDMI から出力できない]] に書かれた方法でセットアップをテストしてください。 |
||
− | * PulseAudio で音が歪む場合は {{ic|1=tsched=0}} を設定して {{ic|rtkit}} デーモンが動いているか確認してください。詳しくは [[PulseAudio/トラブルシューティング# |
+ | * PulseAudio で音が歪む場合は {{ic|1=tsched=0}} を設定して {{ic|rtkit}} デーモンが動いているか確認してください。詳しくは [[PulseAudio/トラブルシューティング#バッファアンダーランのトラブルシューティング (音ズレ、音飛び、音割れ)]] を参照。 |
+ | * HDA 準拠のハードウェアはとても一般的なので、あなたのサウンドカードも同じモジュールを使用しているかもしれません。(alsa 設定の {{ic|defaults}} ノードを使う方法も含む)提案した方法のうち1つを使って [[Advanced Linux Sound Architecture#デフォルトサウンドカードの設定|デフォルトサウンドカードを設定]]してください。 |
||
}} |
}} |
||
363行目: | 349行目: | ||
== vsync (垂直同期) をオフにする == |
== vsync (垂直同期) をオフにする == |
||
− | radeon ドライバーはデフォルトで垂直同期を有効にします。ベンチマーク以外ではそれで全く問題がありません。垂直同期をオフにするには、{{ic|~/.drirc}} を作成して (既に存在する場合は編集して) 以下のセクションを加えて下さい: |
+ | radeon ドライバーはデフォルトで垂直同期を有効にします。ベンチマーク以外ではそれで全く問題がありません。垂直同期をオフにするには、{{ic|1=vblank_mode=0}} [[環境変数]]を試してみるか、{{ic|~/.drirc}} を作成して (既に存在する場合は編集して) 以下のセクションを加えて下さい: |
+ | |||
− | {{hc|~/.drirc|<nowiki> |
||
+ | {{hc|~/.drirc|2= |
||
<driconf> |
<driconf> |
||
<device screen="0" driver="dri2"> |
<device screen="0" driver="dri2"> |
||
371行目: | 358行目: | ||
</application> |
</application> |
||
</device> |
</device> |
||
− | + | ... |
|
</driconf> |
</driconf> |
||
+ | }} |
||
− | </nowiki>}} |
||
+ | |||
− | driver は '''dri2''' です。ビデオカードのコード (r600 など) ではありません。 |
||
+ | {{Note|driver は '''dri2''' です。ビデオカードのコード (r600 など) ではありません。}} |
||
+ | |||
+ | vsync が無効にならない場合、{{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} を編集して無効化してください。[[#ドライバーオプション]] を見てください。 |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
=== EXA を使用している場合にパフォーマンスが出ない、あるいは乱れが生じる === |
=== EXA を使用している場合にパフォーマンスが出ない、あるいは乱れが生じる === |
||
+ | |||
{{Note|以下は R600 (Radeon X1000 シリーズ) よりも古いカードにのみ当てはまります。新しいカードの場合は EXA ではなく Glamor を使ってください。}} |
{{Note|以下は R600 (Radeon X1000 シリーズ) よりも古いカードにのみ当てはまります。新しいカードの場合は EXA ではなく Glamor を使ってください。}} |
||
385行目: | 376行目: | ||
さらに EXAPixmaps を無効果することで乱れがなくなることがあります。ただし、他の問題が引き起こされる可能性があるため一般的には推奨されていません。 |
さらに EXAPixmaps を無効果することで乱れがなくなることがあります。ただし、他の問題が引き起こされる可能性があるため一般的には推奨されていません。 |
||
− | {{hc|/etc/X11/xorg.conf.d/20-radeon.conf| |
+ | {{hc|/etc/X11/xorg.conf.d/20-radeon.conf| |
− | Section " |
+ | Section "OutputClass" |
Identifier "Radeon" |
Identifier "Radeon" |
||
− | + | MatchDriver "radeon" |
|
Option "AccelMethod" "exa" |
Option "AccelMethod" "exa" |
||
Option "MigrationHeuristic" "greedy" |
Option "MigrationHeuristic" "greedy" |
||
#Option "EXAPixmaps" "off" |
#Option "EXAPixmaps" "off" |
||
EndSection |
EndSection |
||
+ | }} |
||
− | </nowiki>}} |
||
− | |||
− | === 検知されない解像度を追加する === |
||
+ | === 検知/サポートされない解像度を追加する === |
||
− | DisplayPort 接続などで EDID が認識されないことがあります。 |
||
− | + | [[Xrandr#検出されない解像度を追加する]] を参照してください。 |
|
=== TV 画面の回りに黒枠が表示される === |
=== TV 画面の回りに黒枠が表示される === |
||
405行目: | 394行目: | ||
{{Note|以下の方法を試す前に TV が正しく設定されているか確認してください (マニュアルを参照)。}} |
{{Note|以下の方法を試す前に TV が正しく設定されているか確認してください (マニュアルを参照)。}} |
||
− | + | HDMI ポートを使用して TV を接続すると、画面の周りに 2-3cm の枠が表示され画像がぼやけることがあります。これはオーバスキャンを防ぐものですが([[Wikipedia:Overscan]] を参照)、xrandr を使ってオフにすることができます: |
|
+ | |||
xrandr --output HDMI-0 --set underscan off |
xrandr --output HDMI-0 --set underscan off |
||
=== 黒画面でコンソールが現れないが、KMS で X は動作する === |
=== 黒画面でコンソールが現れないが、KMS で X は動作する === |
||
− | 一つの PC で複数の ATI カードを使用しているときに、コンソールが表示されないという問題が起こります。Fujitsu Siemens Amilo PA 3553 ノートパソコンなどがこの問題を抱えています。fbcon コンソールドライバーが間違ったフレームバッファデバイスにマッピングしているのが原因です。カーネル |
+ | 一つの PC で複数の ATI カードを使用しているときに、コンソールが表示されないという問題が起こります。Fujitsu Siemens Amilo PA 3553 ノートパソコンなどがこの問題を抱えています。fbcon コンソールドライバーが間違ったフレームバッファデバイスにマッピングしているのが原因です。以下の[[カーネルパラメータ]]を使うことで解決します: |
+ | |||
fbcon=map:1 |
fbcon=map:1 |
||
+ | |||
− | 上記の設定で問題が解決しない場合、以下の設定で起動してみてください: |
||
+ | これは {{ic|/dev/fb0}} ではなく {{ic|/dev/fb1}} フレームバッファへとマッピングするよう fbcon に指示します。上記の設定で問題が解決しない場合、以下の設定で起動してみてください: |
||
+ | |||
fbcon=map:0 |
fbcon=map:0 |
||
418行目: | 411行目: | ||
3つの解決方法が考えられます: |
3つの解決方法が考えられます: |
||
+ | |||
− | * {{ic|<nowiki>pci=nomsi</nowiki>}} をブートローダーの[[カーネルパラメータ]]に追加して見て下さい。 |
||
− | * |
+ | * {{ic|1=pci=nomsi}} をブートローダーの[[カーネルパラメータ]]に追加して見て下さい。 |
+ | * 上のカーネルパラメータでうまくいかない場合、{{ic|1=pci=nomsi}} の代わりに {{ic|noapic}} を追加してみてください。 |
||
− | * どちらも機能しないときは、{{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} と {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} を実行してどちらが機能するかを確認し、{{AUR|driconf}} をインストールして {{ic|~/.drirc}} にオプションを設定してください。 |
||
+ | * どちらもうまくいかない、{{ic|1=vblank_mode=0 glxgears}} か {{ic|1=vblank_mode=1 glxgears}} を実行してどちらでうまく行くかを調べ、[[#vsync (垂直同期) をオフにする|そのオプションを永続的に設定してください]]。 |
||
=== スリープから復帰した後にカーソルがおかしくなる === |
=== スリープから復帰した後にカーソルがおかしくなる === |
||
− | モニターがスリープから復帰した後にカーソルが縦に重なるなどおかしな表示がされる場合、{{ic|20-radeon.conf}} 設定ファイルの {{ic|" |
+ | モニターがスリープから復帰した後にカーソルが縦に重なるなどおかしな表示がされる場合、{{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} 設定ファイルの {{ic|"OutputClass"}} セクションで {{ic|"SWCursor" "True"}} を設定してください。 |
=== マルチモニタモードで DisplayPort が出力されない === |
=== マルチモニタモードで DisplayPort が出力されない === |
||
432行目: | 426行目: | ||
=== R9-390 のパフォーマンスが出ない、あるいは不安定 === |
=== R9-390 のパフォーマンスが出ない、あるいは不安定 === |
||
− | R9-390 シリーズのカードのファームウェアには DPM 関連に問題があり、性能が発揮されなかったりクラッシュすることがあります (ゲームを遊んだり Google マップを使ったりすると発症します)。 |
+ | R9-390 シリーズのカードのファームウェアには DPM 関連に問題があり、性能が発揮されなかったりクラッシュすることがあります (ゲームを遊んだり Google マップを使ったりすると発症します)。バグレポートの[https://gitlab.freedesktop.org/mesa/mesa/-/issues/1222#note_240698 コメント]に修正方法が書かれてあります。 |
=== 古い Radeon カードの HDMI 接続による QHD/UHD/4K のサポート === |
=== 古い Radeon カードの HDMI 接続による QHD/UHD/4K のサポート === |
||
440行目: | 434行目: | ||
[https://www.elstel.org/software/hunt-for-4K-UHD-2160p.html.en 低いリフレッシュレートのカスタムモード] (例: 30Hz) を使うことで HDMI が使える場合があります。 |
[https://www.elstel.org/software/hunt-for-4K-UHD-2160p.html.en 低いリフレッシュレートのカスタムモード] (例: 30Hz) を使うことで HDMI が使える場合があります。 |
||
− | また、ピクセルクロックの制限を取り払うカーネルパッチも存在しますが、カードにダメージを与える可能性があ |
+ | また、ピクセルクロックの制限を取り払うカーネルパッチも存在しますが、カードにダメージを与える可能性があります。 |
+ | |||
+ | 4.8 用のパッチの [https://bugzilla.kernel.org/show_bug.cgi?id=172421 公式カーネルバグチケット] を参照してください。 |
||
+ | |||
+ | パッチを適用すると新しいカーネルパラメータ {{ic|radeon.hdmimhz}} によってピクセルクロックの制限を変えることができるようになります。 |
||
また、ハイスピード HDMI ケーブルを使うようにしてください。 |
また、ハイスピード HDMI ケーブルを使うようにしてください。 |
||
+ | |||
+ | === 390X で 4K DP を使用すると水平方向のちらつきが発生することがある === |
||
+ | |||
+ | 390X (もしくは似たようなモデル) を使用していて DP から 4K 出力を行っている場合、水平方向のアーティファクト/ちらつきが発生することがあります。約30分おきに水平方向のピクセルの帯(高さは約100ピクセルで幅は画面の幅と同じ)が数秒間上下に揺れるような感じです。これは radeon ドライバのバグかもしれません。[[AMDGPU]] を代わりに使うと直るようです。 |
||
+ | |||
+ | == 参照 == |
||
+ | |||
+ | [https://www.phoronix.com/scan.php?page=article&item=radeonsi-cat-wow&num=1 ベンチマーク]では、多くのカードでオープンソースドライバがプロプライエタリドライバと同等のパフォーマンスであるということが示されています。 |
||
+ | |||
+ | {{TranslationStatus|ATI|2024-11-29|820673}} |
2024年11月29日 (金) 18:41時点における最新版
この記事では、AMD (以前は ATI) の古い GPU をサポートする radeon オープンソースドライバをカバーしています。
目次
- 1 正しいドライバーの選択
- 2 インストール
- 3 ロード
- 4 Xorg の設定
- 5 パフォーマンスチューニング
- 6 ハイブリッドグラフィック/AMD Dynamic Switchable Graphics
- 7 省電力機能
- 8 ファンの速度
- 9 TV 出力
- 10 HDMI オーディオ
- 11 マルチモニターの設定
- 12 vsync (垂直同期) をオフにする
- 13 トラブルシューティング
- 13.1 EXA を使用している場合にパフォーマンスが出ない、あるいは乱れが生じる
- 13.2 検知/サポートされない解像度を追加する
- 13.3 TV 画面の回りに黒枠が表示される
- 13.4 黒画面でコンソールが現れないが、KMS で X は動作する
- 13.5 ATI X1600 (RV530 シリーズ) で 3D アプリケーションが黒いウィンドウを表示する
- 13.6 スリープから復帰した後にカーソルがおかしくなる
- 13.7 マルチモニタモードで DisplayPort が出力されない
- 13.8 R9-390 のパフォーマンスが出ない、あるいは不安定
- 13.9 古い Radeon カードの HDMI 接続による QHD/UHD/4K のサポート
- 13.10 390X で 4K DP を使用すると水平方向のちらつきが発生することがある
- 14 参照
正しいドライバーの選択
使用しているカードにあわせて、Xorg#AMD を見て適切なドライバーを選択してください。このページでは ATI ドライバーについて説明します。
よくわからない場合、まず AMDGPU ドライバを試してください。AMDGPU ドライバは2015年以降にリリースされたカードのほとんどと適合します。このドライバによってサポートされている機能を調べるにはこの機能表を見てください。マーケティング名 (例: Radeon HD4330) とチップ名との対応はこのデコード表を見てください。
インストール
mesa パッケージをインストールしてください。これには、3D アクセラレーションのための DRI ドライバーと、動画エンコードのアクセラレーションのための VA-API/VDPAU ドライバの両方が含まれています。非常に古い GPU (R200 及びそれ以前) の場合は mesa-amber をインストールしてください。
- 32ビットのアプリケーションに対応するには、multilib リポジトリ にある lib32-mesa (lib32-mesa-amber) パッケージもインストールしてください。
- DDX ドライバー (Xorg で 2D アクセラレーションを提供します) については、xf86-video-ati パッケージをインストールしてください。
ロード
radeon カーネルモジュールはシステムの起動時に自動的に正しく読み込まれるはずです。
うまく行かない場合:
- カーネルパラメータ に
nomodeset
やvga=
を使用していないことを確認してください。radeon は KMS を要求するからです。 - また、カーネルモジュールのブラックリスト化によって radeon を無効化していないことを確認してください。
Xorg の設定
Xorg は自動的にドライバーをロードしてモニターの EDID を使用してネイティブ解像度を設定します。設定が必要になるのはドライバーを調整するときだけです。
手動で設定したい場合 /etc/X11/xorg.conf.d/20-radeon.conf
を作成して以下を記述してください:
Section "OutputClass" Identifier "Radeon" MatchDriver "radeon" Driver "radeon" EndSection
上記のセクションを使って、ドライバーの設定を調整したり機能を有効化することができます。
パフォーマンスチューニング
ビデオアクセラレーションを有効にする
ハードウェアビデオアクセラレーション#AMD/ATIを見てください。
グラフィカルツール
- radeon-profile — Radeon カードの情報を表示する Qt アプリケーション。
- CoreCtrl — 人気な汎用 GPU/CPU コントローラー。高度な使用法については Setup ページを見てください。
ドライバーオプション
以下のオプションは /etc/X11/xorg.conf.d/20-radeon.conf
に追加します。
ドライバーオプションを有効にする前に radeon(4) と RadeonFeature を読んで下さい。
アクセラレーションアーキテクチャ: Glamor は、OpenGL で実装された 2D アクセラレーションメソッドです。R600 (Radeon HD2000 シリーズ) およびそれ以降のグラフィックカードでは、これがデフォルトで使用されます。それより古いカードでは、EXA が使用されます。
Option "AccelMethod" "glamor"
xf86-video-ati 7.8.0 以降、DRI3 はデフォルトで有効になっています。
TearFree はハードウェアのページフリッピング機能を使ってチラツキを抑えます。このオプションを有効にすると "EnablePageFlip" オプションが無効になります:
Option "TearFree" "on"
ColorTiling と ColorTiling2D は安全に有効にすることができ、おそらくデフォルトで有効になっています。タイルモードは 3D アプリケーションのパフォーマンスを劇的に向上する可能性があります。DRM モジュールが古すぎる場合や、現在のディスプレイ構成がこのモードをサポートしていない場合、このモードは無効化されます。KMS ColorTiling2D は、R600 (Radeon HD2000 シリーズ) およびそれ以降のチップでのみサポートされています:
Option "ColorTiling" "on" Option "ColorTiling2D" "on"
アクセラレーションアーキテクチャとして Glamor を使う場合、ShadowPrimary オプションを有効にすることができます。このオプションは、CPU がピクセルデータに高速にアクセスできるようにする "shadow primary" バッファと呼ばれるものと、各ディスプレイコントローラ (CRTC) 用の個別のスキャンアウトバッファを有効化します。これにより、一部の 2D のワークロードが高速化する場合がありますが、他のワークロード (3D やビデオなど) が犠牲になる可能性があります。このオプションを有効にすると "EnablePageFlip" オプションが無効化されることに注意してください:
Option "ShadowPrimary" "on"
EXAVSync オプションは EXA を使用している場合にのみ利用可能です。このオプションは、ディスプレイコントローラが出力先の領域を引き渡すまでエンジンを止めることでティアリングを減らそうとします。パフォーマンスを犠牲にティアリングを減らしますが、チップによっては不安定になることが知られています:
Option "EXAVSync" "yes"
下は設定ファイル /etc/X11/xorg.conf.d/20-radeon.conf
のサンプルです:
Section "OutputClass" Identifier "Radeon" MatchDriver "radeon" Driver "radeon" Option "AccelMethod" "glamor" Option "DRI" "3" Option "TearFree" "on" Option "ColorTiling" "on" Option "ColorTiling2D" "on" EndSection
カーネルパラメータ
gartsize が自動検知されない場合、radeon.gartsize=32
をカーネルパラメータに追加して手動で定義することができます。
変更は次の起動時に有効になります。
PCIe 2.0 の無効化
カーネル 3.6 から、radeon の PCI Express 2.0 はデフォルトで有効になっています。
マザーボードによっては不安定になることがあり、カーネルコマンドラインに radeon.pcie_gen2=0
を追加することで無効にできます。
詳細は Phoronix の記事 を見て下さい。
Gallium ヘッドアップディスプレイ
radeon ドライバーはゲームなどのアプリケーションの上に透明な文字やテキストを描画できるヘッドアップディスプレイ(HUD)の有効化をサポートしています。現在のフレームレートや CPU の使用率 (各 CPU コアごとの使用率やその平均) などの情報が表示できます。HUD は GALLIUM_HUD 環境変数で制御し、以下のパラメータのリストを指定できます:
- "fps" - 現在のフレームレートを表示
- "cpu" - CPU の平均使用率を表示
- "cpu0" - 1番目の CPU コアの CPU 使用率を表示
- "cpu0+cpu1" - 最初の2つの CPU コアの CPU 使用率を表示
- "draw-calls" - 画面上のオブジェクトのマテリアルの描画回数を表示
- "requested-VRAM" - GPU の VRAM の使用量を表示
- "pixels-rendered" - 描画されたピクセル数を表示
パラメータの完全なリストや GALLIUM_HUD の詳細は glxgears などのシンプルなアプリケーションで "help" パラメータを使うことで確認できます:
# GALLIUM_HUD="help" glxgears
詳しくは メーリングリストの投稿 や ブログの記事 を見て下さい。
ハイブリッドグラフィック/AMD Dynamic Switchable Graphics
電力効率の良い GPU (一般的に Intel 内蔵カード) とパワフルで電力消費が激しい GPU (一般的に Radeon や Nvidia) の、2つの GPU を搭載している最新のノートパソコンで使われている技術です。機能させるには2つの方法があります:
- GPU の負担が重いアプリケーションを使う必要がないときは、ディスクリートカードを無効にすることができます(詳しくは Ubuntu wiki を参照):
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
- PRIME を使用することができます。Linux でハイブリッドグラフィックを使うのに適当な方法と言えますが、ユーザーによる手動の操作が必要です。
省電力機能
radeon ドライバでは省電力機能はデフォルトで無効化されており、必要であれば手動で有効にする必要があります。
3つの方法から選ぶことができます:
詳しくは https://www.x.org/wiki/RadeonFeature/#index3h2 を見てください。
動的電源管理
カーネル 3.13 から、DPM (Dynamic power management) は 多くの AMD Radeon ハードウェア においてデフォルトで有効になっています。無効にするには、カーネルパラメータに radeon.dpm=0
を追加してください。
dynpm とは違い、"dpm" は GPU 上のハードウェアを使って動的に GPU の使用率にあわせて周波数と電圧を変化させます。また、クロック・パワーゲーティングも有効になります。
以下の3つの動作モードが存在します:
battery
省電力balanced
デフォルトperformance
ハイパフォーマンス
sysfs を使ってモードを変更することが可能です:
# echo battery > /sys/class/drm/card0/device/power_dpm_state
テストしたりデバッグするために、カードを強制的にパフォーマンスモードで動作させることが可能です:
auto
: デフォルト。全ての電源状態のレベルを使用します。low
: 一番低いパフォーマンスレベルを強制。high
: 一番高いパフォーマンスレベルを強制。
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level
コマンドラインツール
古い方法
動的周波数切り替え
この方法では GPU の負担にあわせて動的に周波数を変更します。GPU を酷使するアプリを実行したときはパフォーマンスが強化され、GPU がアイドル状態の時は周波数が下げられます。クロック変更は垂直帰線消去時に行われますが、クロック変更関数のタイミングのせいで、常に消去時に完了するわけではなく、ディスプレイにちらつきが生じてしまうこともあります。このため、dynpm はモニタが一つしか無いときに動作します。
次のコマンドを実行することで有効にできます:
# echo dynpm > /sys/class/drm/card0/device/power_method
プロファイルを使用する周波数切り替え
この方法では5つのプロファイル (下を参照) からどれか一つを選択することができます。プロファイルが異なると言っても、どれも、GPU の周波数や電圧の変更を行います。この方法はあまりアグレッシブではない代わりに、安定しておりちらつきも抑えられ、マルチモニタでも動作します。
この方法を有効にするには、次のコマンドを実行:
# echo profile > /sys/class/drm/card0/device/power_method
以下のプロファイルから選んで下さい:
default
はデフォルトの周波数を使用し、電源の状態を変更しません。これはデフォルトの挙動です。auto
はシステムがバッテリー電源で動作しているのかそうでないのかによって電源状態をmid
とhigh
で切り替えます。low
はどんなときでも強制的に gpu の電源状態がlow
になるようにします。low
ではノートパソコンのディスプレイに問題が起こることがあり、そのためauto
ではモニタの電源がオフのときだけlow
を使います。他のプロファイルではモニタの DPMS の状態がオフのときに選択されます。mid
はどんなときでも強制的に gpu の電源状態がmid
になるようにします。high
はどんなときでも強制的に gpu の電源状態がhigh
になるようにします。
例えば、low
プロファイルを有効にするには (必要に応じて low
を上記のプロファイルのどれかと置き換えて下さい):
# echo low > /sys/class/drm/card0/device/power_profile
永続的な設定
上述の設定は永続的なものではりません、コンピューターを再起動すると戻ってしまいます。設定を永続化させるために、udev ルールを使うことができます (#プロファイルを使用する周波数切り替えの例):
/etc/udev/rules.d/30-radeon-pm.rules
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"
他の例として、動的電源管理 では特定のパフォーマンスレベルを永続的に強制することができます:
/etc/udev/rules.d/30-radeon-pm.rules
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_dpm_force_performance_level}="high"
ノート
GPU が動作している速度を見るには、次のコマンドを実行することで以下のような出力が得られます:
# cat /sys/kernel/debug/dri/0/radeon_pm_info
state: PM_STATE_ENABLED default engine clock: 300000 kHz current engine clock: 300720 kHz default memory clock: 200000 kHz
ただし値は使用している GPU や radeon ドライバーのバージョン、カーネルのバージョンなどによって変わります。
温度センサーは外部の i2c チップか内部の温度センサー (rv6xx-evergreen のみ) によって実装されています。i2c チップを使用する asics の温度を取得するには、あなたのボードで使われているセンサーの適切な hwmon ドライバーをロードする必要があります (lm63, lm64 など)。それで drm が適当な hwmon ドライバーをロードします。内部の温度センサーを使用するボードの場合、drm は hwmon インターフェイスを自動的に設定します。適当なドライバーがロードされていれば、lm_sensors ツールや /sys/class/hwmon
の sysfs で温度を調べることができます。
ファンの速度
上記の省電力機能によってファンの速度は上手く制御されるはずですが、一部のカードではアイドル状態でも五月蝿すぎる場合があります。そのような場合、カードがサポートしていれば、手動でファンの速度を変更できます。
GPU ファンを制御するには、ファンスピード制御#AMDGPU の sysfs によるファン制御 を見てください(amdgpu と radeon は同じ制御を行います)。
永続化させるには、#永続的な設定 の例を見てください。
速度を固定したくない場合、温度にあわせてファンの速度を設定するスクリプトを書くなどして手動でファンの速度カーブを定義できます (現在の値は /sys/class/drm/card0/device/hwmon/hwmon0/temp1_input
で確認できます)。
GUI で設定したい場合は radeon-profile-gitAUR をインストールしてください。
TV 出力
まず、S 端子があるかチェックしてください、xrandr
で以下のように表示されるはずです:
Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200 ... S-video disconnected (normal left inverted right x axis y axis)
そして Xorg に接続されていると伝えます:
xrandr --output S-video --set "load detection" 1
tv standard を使うように設定:
xrandr --output S-video --set "tv standard" ntsc
モードを追加 (現在は 800x600 しかサポートされていません):
xrandr --addmode S-video 800x600
モードを複製:
xrandr --output S-video --same-as VGA-0
試行:
xrandr --output S-video --mode 800x600
これで 800x600 のデスクトップがテレビに表示されるはずです。
出力を無効化するには:
xrandr --output S-video --off
KMS で TV 出力を強制する
カーネルは次の形式で video=
パラメータを認識します (詳しくは カーネルモード設定を参照):
video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]
サンプル:
video=DVI-I-1:1280x1024-24@60e
パラメータに空白を含む場合はクォートで囲って下さい:
"video=9-pin DIN-1:1024x768-24@60e"
次のコマンドでビデオ出力の一覧を取得できます:
$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-
HDMI オーディオ
HDMI オーディオは xf86-video-ati ビデオドライバーでサポートされています。問題を起こすことがあるため、無効にしたい場合、カーネルパラメータに radeon.audio=0
を追加してください。
起動後画面が表示されない場合は、ドライバーオプションを無効にしてください。
マルチモニターの設定
RandR 拡張を使う
RandR を使ってマルチモニターをセットアップする方法はマルチディスプレイ#RandR を見てください。
X スクリーンを独立させる
独立したデュアルスクリーンの設定は通常通りで問題ありません。ただし radeon ドライバーには "ZaphodHeads"
オプションが存在し、デバイスセクションを特定の出力端子に結びつけることができます:
/etc/X11/xorg.conf.d/20-radeon.conf
Section "Device" Identifier "Device0" Driver "radeon" Option "ZaphodHeads" "VGA-0" VendorName "ATI" BusID "PCI:1:0:0" Screen 0 EndSection
ビデオカードに複数の出力端子が3つ以上存在する場合などに役に立ちます。例えば HDMI, DVI, VGA 端子が存在する場合 "ZaphodHeads" "VGA-0"
と明示的に指定しないかぎり、マルチモニター設定では HDMI+DVI 出力だけを選択・使用します。
vsync (垂直同期) をオフにする
radeon ドライバーはデフォルトで垂直同期を有効にします。ベンチマーク以外ではそれで全く問題がありません。垂直同期をオフにするには、vblank_mode=0
環境変数を試してみるか、~/.drirc
を作成して (既に存在する場合は編集して) 以下のセクションを加えて下さい:
~/.drirc
<driconf> <device screen="0" driver="dri2"> <application name="Default"> <option name="vblank_mode" value="0" /> </application> </device> ... </driconf>
vsync が無効にならない場合、/etc/X11/xorg.conf.d/20-radeon.conf
を編集して無効化してください。#ドライバーオプション を見てください。
トラブルシューティング
EXA を使用している場合にパフォーマンスが出ない、あるいは乱れが生じる
ターミナルやウェブブラウザのスクロールが遅いなど、2D のパフォーマンスに問題が起こる場合、デバイスオプションに Option "MigrationHeuristic" "greedy"
を追加することで解決することがあります。
さらに EXAPixmaps を無効果することで乱れがなくなることがあります。ただし、他の問題が引き起こされる可能性があるため一般的には推奨されていません。
/etc/X11/xorg.conf.d/20-radeon.conf
Section "OutputClass" Identifier "Radeon" MatchDriver "radeon" Option "AccelMethod" "exa" Option "MigrationHeuristic" "greedy" #Option "EXAPixmaps" "off" EndSection
検知/サポートされない解像度を追加する
Xrandr#検出されない解像度を追加する を参照してください。
TV 画面の回りに黒枠が表示される
HDMI ポートを使用して TV を接続すると、画面の周りに 2-3cm の枠が表示され画像がぼやけることがあります。これはオーバスキャンを防ぐものですが(Wikipedia:Overscan を参照)、xrandr を使ってオフにすることができます:
xrandr --output HDMI-0 --set underscan off
黒画面でコンソールが現れないが、KMS で X は動作する
一つの PC で複数の ATI カードを使用しているときに、コンソールが表示されないという問題が起こります。Fujitsu Siemens Amilo PA 3553 ノートパソコンなどがこの問題を抱えています。fbcon コンソールドライバーが間違ったフレームバッファデバイスにマッピングしているのが原因です。以下のカーネルパラメータを使うことで解決します:
fbcon=map:1
これは /dev/fb0
ではなく /dev/fb1
フレームバッファへとマッピングするよう fbcon に指示します。上記の設定で問題が解決しない場合、以下の設定で起動してみてください:
fbcon=map:0
ATI X1600 (RV530 シリーズ) で 3D アプリケーションが黒いウィンドウを表示する
3つの解決方法が考えられます:
pci=nomsi
をブートローダーのカーネルパラメータに追加して見て下さい。- 上のカーネルパラメータでうまくいかない場合、
pci=nomsi
の代わりにnoapic
を追加してみてください。 - どちらもうまくいかない、
vblank_mode=0 glxgears
かvblank_mode=1 glxgears
を実行してどちらでうまく行くかを調べ、そのオプションを永続的に設定してください。
スリープから復帰した後にカーソルがおかしくなる
モニターがスリープから復帰した後にカーソルが縦に重なるなどおかしな表示がされる場合、/etc/X11/xorg.conf.d/20-radeon.conf
設定ファイルの "OutputClass"
セクションで "SWCursor" "True"
を設定してください。
マルチモニタモードで DisplayPort が出力されない
radeon.audio=0
カーネルパラメータを使って起動してみてください。
R9-390 のパフォーマンスが出ない、あるいは不安定
R9-390 シリーズのカードのファームウェアには DPM 関連に問題があり、性能が発揮されなかったりクラッシュすることがあります (ゲームを遊んだり Google マップを使ったりすると発症します)。バグレポートのコメントに修正方法が書かれてあります。
古い Radeon カードの HDMI 接続による QHD/UHD/4K のサポート
古いカードでは HDMI のピクセルクロックが 165MHz に制限されており、QHD や 4K を使うには HDMI ではなくデュアルリンク DVI を使う必要があります。
低いリフレッシュレートのカスタムモード (例: 30Hz) を使うことで HDMI が使える場合があります。
また、ピクセルクロックの制限を取り払うカーネルパッチも存在しますが、カードにダメージを与える可能性があります。
4.8 用のパッチの 公式カーネルバグチケット を参照してください。
パッチを適用すると新しいカーネルパラメータ radeon.hdmimhz
によってピクセルクロックの制限を変えることができるようになります。
また、ハイスピード HDMI ケーブルを使うようにしてください。
390X で 4K DP を使用すると水平方向のちらつきが発生することがある
390X (もしくは似たようなモデル) を使用していて DP から 4K 出力を行っている場合、水平方向のアーティファクト/ちらつきが発生することがあります。約30分おきに水平方向のピクセルの帯(高さは約100ピクセルで幅は画面の幅と同じ)が数秒間上下に揺れるような感じです。これは radeon ドライバのバグかもしれません。AMDGPU を代わりに使うと直るようです。
参照
ベンチマークでは、多くのカードでオープンソースドライバがプロプライエタリドライバと同等のパフォーマンスであるということが示されています。