「ATI」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
 
(2人の利用者による、間の17版が非表示)
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] オープンソースドライバについて扱っています。
+
この記事では、AMD (以前は ATI) の古い GPU をサポートする [https://wiki.freedesktop.org/xorg/radeon/ radeon] オープンソースドライバをカバーしています。
   
== ドライバーの選択 ==
+
== 正しいドライバーの選択 ==
   
 
使用しているカードにあわせて、[[Xorg#AMD]] を見て適切なドライバーを選択してください。このページでは '''ATI''' ドライバーについて説明します。
 
使用しているカードにあわせて、[[Xorg#AMD]] を見て適切なドライバーを選択してください。このページでは '''ATI''' ドライバーについて説明します。
   
よくわからない場合、最初にオープンソースドライバを試してさい。ほとんどの用途に間にい、問題も少ないはずです。使用しいる GPU がサポートされているかどうか [https://www.x.org/wiki/RadeonFeature feature matrix] 参照してください。[https://www.x.org/wiki/RadeonFeature/#index5h2 decoder ring] を見ればブラ名 (例: Radeon HD4330) からチップ前 (例: R700) を割り出すとができます
+
よくわからない場合、まず [[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]] で 2D アクセラレーション) については、{{Pkg|xf86-video-ati}} パッケージをインストールしてください。
+
* DDX ドライバー ([[Xorg]] で 2D アクセラレーションを提供します) については、{{Pkg|xf86-video-ati}} パッケージをインストールしてください。
 
{{Pkg|mesa-vdpau}} と {{Pkg|lib32-mesa-vdpau}} パッケージをインストールすると、[[ハードウェアビデオアクセラレーション|動画デコードのアクセラレーション]]がサポートされます。
 
   
 
== ロード ==
 
== ロード ==
40行目: 32行目:
 
* [[カーネルパラメータ]] に {{ic|nomodeset}} や {{ic|1=vga=}} を使用して'''いない'''ことを確認してください。radeon は [[KMS]] を要求するからです。
 
* [[カーネルパラメータ]] に {{ic|nomodeset}} や {{ic|1=vga=}} を使用して'''いない'''ことを確認してください。radeon は [[KMS]] を要求するからです。
 
* また、[[カーネルモジュール#ブラックリスト|カーネルモジュールのブラックリスト化]]によって radeon を無効化していないことを確認してください。
 
* また、[[カーネルモジュール#ブラックリスト|カーネルモジュールのブラックリスト化]]によって radeon を無効化していないことを確認してください。
 
=== Early KMS を有効化 ===
 
 
[[Kernel Mode Setting#Early KMS start]] を見てください。
 
   
 
== Xorg の設定 ==
 
== Xorg の設定 ==
51行目: 39行目:
 
手動で設定したい場合 {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} を作成して以下を記述してください:
 
手動で設定したい場合 {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} を作成して以下を記述してください:
   
Section "Device"
+
Section "OutputClass"
 
Identifier "Radeon"
 
Identifier "Radeon"
  +
MatchDriver "radeon"
 
Driver "radeon"
 
Driver "radeon"
 
EndSection
 
EndSection
62行目: 51行目:
 
=== ビデオアクセラレーションを有効にする ===
 
=== ビデオアクセラレーションを有効にする ===
   
[[ハードウェアビデオアクセラレーション#ATI/AMD]]を見てください。
+
[[ハードウェアビデオアクセラレーション#AMD/ATI]]を見てください。
   
 
=== グラフィカルツール ===
 
=== グラフィカルツール ===
 
* {{App|WattmanGTK|Python 3 により書かれた GTK3 ユーザインターフェイス。Radeon のパフォーマンス、ファン速度、電源状態の監視や、グラフィックプロセッサのオーバークロックができます。これは AMDGPU カーネルドライバを使用します。|https://github.com/BoukeHaarsma23/WattmanGTK|{{AUR|wattman-gtk-git}}}}
 
: {{Note|GNU/Linux で AMD Overdrive テクノロジーを有効化するためにカーネルパラメータ({{ic|amdgpu.ppfeaturemask}}) を設定する必要があります。これは WattmanGTK を使用する上で必須です。}}
 
   
 
* {{App|radeon-profile|Radeon カードの情報を表示する Qt アプリケーション。|https://github.com/marazmista/radeon-profile|{{AUR|radeon-profile-git}}}}
 
* {{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}}}}
 
* {{App|CoreCtrl|人気な汎用 GPU/CPU コントローラー。高度な使用法については [https://gitlab.com/corectrl/corectrl/-/wikis/Setup Setup] ページを見てください。|https://gitlab.com/corectrl/corectrl|{{AUR|corectrl}}}}
 
   
 
=== ドライバーオプション ===
 
=== ドライバーオプション ===
79行目: 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 アクセラレーションメソッドです。R300 以降の新しいドライバーを使用するグラフィックカードで動作します。R600 (Radeon HD2000 シリーズ) 以のグラフィックカードでは自動的に有効になります [https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=f11531c99fcd6473f58b4d10efaf3efd84304d8e]。他のグラフィックカードでも設定ファイルに以下を追加することで強制的に使用することができます:
+
'''アクセラレーションアーキテクチャ''': Glamor はOpenGL で実装された 2D アクセラレーションメソッドです。R600 (Radeon HD2000 シリーズ) およびそれのグラフィックカードでは、これが[https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/-/commit/f11531c99fcd6473f58b4d10efaf3efd84304d8e デフォルトで使用されます]。それより古いカードでは、EXA が使用されます
   
 
Option "AccelMethod" "glamor"
 
Option "AccelMethod" "glamor"
   
xf86-video-ati 7.8.0 から '''DRI3''' はデフォルトで有効になります [https://www.phoronix.com/scan.php?page=news_item&px=Radeon-AMDGPU-1.19-Updates]。古いカードの場合、デフォルトでは DRI2 が使われます。以下のオプションで DRI3 に切り替えることができます:
+
[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" オプションが無効になります:
91行目: 74行目:
 
Option "TearFree" "on"
 
Option "TearFree" "on"
   
'''ColorTiling''' と '''ColorTiling2D''' は安全に有効にすることができ、おそらくデフォルトで有効になっています。ほとんど場合パフォーマンス向上ますが、R200 以前ードではサポートされていません。昔ードでも有効にすることできますが、処理は CPU に転嫁されます。KMS ColorTiling2D は R600 (Radeon HD2000 シリーズ) 以降のチップでのみサポートされています:
+
'''ColorTiling''' と '''ColorTiling2D''' は安全に有効にすることができ、おそらくデフォルトで有効になっています。タイルモードは 3D アプリケーションのパフォーマンスを劇的に向上する可能性があります。DRM モジュール古すぎる場合や現在ディスプレイ構成がこのモードサポートていない場合、こードは無効化されます。KMS ColorTiling2D はR600 (Radeon HD2000 シリーズ) およびそれ以降のチップでのみサポートされています:
   
 
Option "ColorTiling" "on"
 
Option "ColorTiling" "on"
 
Option "ColorTiling2D" "on"
 
Option "ColorTiling2D" "on"
   
アクセラレーションアーキテクチャとして Glamor を使う場合、'''ShadowPrimary''' オプションを有効にすることができます。2D の性能向上しますが、他の性能 (3D や動画) は落ちる可能性があります。このオプションを有効にすると "EnablePageFlip" オプションが無効になります:
+
アクセラレーションアーキテクチャとして Glamor を使う場合、'''ShadowPrimary''' オプションを有効にすることができます。このオプションは、CPU がピクセルデータに高速にアクセスできるようにする "shadow primary" バッファと呼ばれるものと、各ディスプレイコントローラ (CRTC) 用の個別のスキャンアウトバッファを有効化します。これにより、一部の 2D のワークロード高速化する場合がありますが、他のワークロード (3D やビデオなど) が犠牲になる可能性があります。このオプションを有効にすると "EnablePageFlip" オプションが無効化されること注意してください:
   
 
Option "ShadowPrimary" "on"
 
Option "ShadowPrimary" "on"
   
'''EXAVSync''' オプションはディスプレイコントローラが出力先の領域を引き渡すまでエンジンを止めることでティアリングを減らそうとします。パフォーマンスを犠牲にティアリングを減らしますが、チップによっては不安定になることが知られています。3D アクセラレーションが効いたデスクトップで、ビデオの Xv オーバーレイを有効にしたときに有用です。KMS (つまり DRI2 アクセラレーション) が有効になっている時は必要ありません:
+
'''EXAVSync''' オプションは EXA を使用している場合にのみ利用可能です。このオプションは、ディスプレイコントローラが出力先の領域を引き渡すまでエンジンを止めることでティアリングを減らそうとします。パフォーマンスを犠牲にティアリングを減らしますが、チップによっては不安定になることが知られています:
   
 
Option "EXAVSync" "yes"
 
Option "EXAVSync" "yes"
106行目: 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"
+
Driver "radeon"
Option "AccelMethod" "glamor"
+
Option "AccelMethod" "glamor"
Option "DRI" "3"
+
Option "DRI" "3"
Option "TearFree" "on"
+
Option "TearFree" "on"
Option "ColorTiling" "on"
+
Option "ColorTiling" "on"
Option "ColorTiling2D" "on"
+
Option "ColorTiling2D" "on"
EndSection
+
EndSection
}}
 
 
{{Tip|調整ツールとしては {{AUR|driconf}} が試せます。vsync, 異方性フィルタリング, テキスチャー圧縮などの設定を変更することが可能です。このツールを使うことでいくつかのプログラム (例: Google Earth) で必要な "Low Impact fallback の無効化" もできます。}}
 
   
 
=== カーネルパラメータ ===
 
=== カーネルパラメータ ===
164行目: 144行目:
 
== ハイブリッドグラフィック/AMD Dynamic Switchable Graphics ==
 
== ハイブリッドグラフィック/AMD Dynamic Switchable Graphics ==
   
電力効率の良い GPU (Intel 内蔵カード) とパワフルで電力消費が激しい GPU (Radeon や Nvidia) の、2つの GPU を搭載している最新のノートパソコンで使われている技術です。機能させるには3つの方法があります:
+
電力効率の良い GPU (一般的に Intel 内蔵カード) とパワフルで電力消費が激しい GPU (一般的に Radeon や Nvidia) の、2つの GPU を搭載している最新のノートパソコンで使われている技術です。機能させるには2つの方法があります:
   
* GPU の負担が重いアプリケーションを使う必要がないときは、ディスクリートカードを無効にすることができます: {{ic|echo OFF > /sys/kernel/debug/vgaswitcheroo/switch}}。vgaswitcheroo を使えばもっと多くのことが出来ますが (詳しくは [https://help.ubuntu.com/community/HybridGraphics#Using_vga_switcheroo Ubuntu wiki] を参照) どうやっても1つのカードは1つのグラフィックセッションに拘束されるので、1つのグラフィックセッションで両方のカードを使うことはできません。
+
* 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 以降) でサポートされています。DPM は R6xx 以降のチップでサポートされています。
+
{{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 を見てください。
178行目: 165行目:
 
=== 動的電源管理 ===
 
=== 動的電源管理 ===
   
カーネル 3.13 から、DPM (Dynamic power management) は [https://kernelnewbies.org/Linux_3.13#head-f95c198f6fdc7defe36f470dc8369cf0e16898df ほとんどの AMD Radeon ハードウェア] においてデフォルトで有効になっています。無効にするには、[[カーネルパラメータ]]に {{ic|1=radeon.dpm=0}} を追加してください。
+
カーネル 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 が有効になります。}}
191行目: 178行目:
   
 
sysfs を使ってモードを変更することが可能です:
 
sysfs を使ってモードを変更することが可能です:
  +
 
# echo battery > /sys/class/drm/card0/device/power_dpm_state
 
# echo battery > /sys/class/drm/card0/device/power_dpm_state
   
203行目: 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 からデフォルトで有効)
 
   
 
==== 動的周波数切り替え ====
 
==== 動的周波数切り替え ====
240行目: 222行目:
 
# echo low > /sys/class/drm/card0/device/power_profile
 
# echo low > /sys/class/drm/card0/device/power_profile
   
==== 永続的な設定 ====
+
=== 永続的な設定 ===
   
上述の設定は永続的なものではりません、コンピューターを再起動すると戻ってしまいます。設定を永続化させるために、[[systemd#一時ファイル|systemd-tmpfiles]] を使うことができます ([[#動的周波数切り替え]]の例):
+
上述の設定は永続的なものではりません、コンピューターを再起動すると戻ってしまいます。設定を永続化させるために、[[udev]] ルールを使うことができます ([[#プロファイルを使用する周波数切り替え]]の例):
   
{{hc|/etc/tmpfiles.d/radeon-pm.conf|<nowiki>
+
{{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|パッケージが存在しません}}}}
 
   
 
=== ノート ===
 
=== ノート ===
264行目: 240行目:
 
GPU が動作している速度を見るには、次のコマンドを実行することで以下のような出力が得られます:
 
GPU が動作している速度を見るには、次のコマンドを実行することで以下のような出力が得られます:
   
{{hc|# cat /sys/kernel/debug/dri/0/radeon_pm_info|<nowiki>
+
{{hc|# cat /sys/kernel/debug/dri/0/radeon_pm_info|
state: PM_STATE_ENABLED
+
state: PM_STATE_ENABLED
default engine clock: 300000 kHz
+
default engine clock: 300000 kHz
current engine clock: 300720 kHz
+
current engine clock: 300720 kHz
default memory clock: 200000 kHz
+
default memory clock: 200000 kHz
  +
}}
</nowiki>}}
 
   
 
ただし値は使用している GPU や radeon ドライバーのバージョン、カーネルのバージョンなどによって変わります。
 
ただし値は使用している GPU や radeon ドライバーのバージョン、カーネルのバージョンなどによって変わります。
   
温度センサーは外部の i2c チップか内部の温度センサー (rv6xx-evergreen のみ) によって実装されています。i2c チップを使用する asics の温度を取得するには、あなたのボードで使われているセンサーの適切な hwmon ドライバーをロードする必要があります (lm63, lm64 など)。それで drm が適当な hwmon ドライバーをロードします。内部の温度センサーを使用するボードの場合、drm は hwmon インターフェイスを自動的に設定します。適当なドライバーがロードされていれば、[[lm_sensors|lm_sensors]] ツールや {{ic|/sys/class/hwmon}} の sysfs で温度を調べることができます。
+
温度センサーは外部の i2c チップか内部の温度センサー (rv6xx-evergreen のみ) によって実装されています。i2c チップを使用する asics の温度を取得するには、あなたのボードで使われているセンサーの適切な hwmon ドライバーをロードする必要があります (lm63, lm64 など)。それで drm が適当な hwmon ドライバーをロードします。内部の温度センサーを使用するボードの場合、drm は hwmon インターフェイスを自動的に設定します。適当なドライバーがロードされていれば、[[lm_sensors]] ツールや {{ic|/sys/class/hwmon}} の sysfs で温度を調べることができます。
   
 
== ファンの速度 ==
 
== ファンの速度 ==
283行目: 259行目:
 
* 標準の値よりも低い値を使うときは GPU の温度に注意してください。
 
* 標準の値よりも低い値を使うときは GPU の温度に注意してください。
 
}}
 
}}
 
以下のコマンドを実行することでグラフィックカードのファン速度の手動設定を有効にできます (あるいは GPU が複数刺さっている場合、1番目の GPU の手動設定が有効になります):
 
 
# echo 1 > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1_enable
 
 
ファンの速度は 0 から 255 までの値を設定でき、最大速度の 0% から 100% に対応します (以下のコマンドは 20% に設定します):
 
   
  +
GPU ファンを制御するには、[[ファンスピード制御#AMDGPU の sysfs によるファン制御]] を見てください(amdgpu と radeon は同じ制御を行います)。
# 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}} で確認できます)。
333行目: 297行目:
 
=== KMS で TV 出力を強制する ===
 
=== KMS で TV 出力を強制する ===
   
カーネルは次の形式で {{ic|1=video=}} パラメータを認識します (詳しくは [[Kernel Mode Setting|KMS]] を参照):
+
カーネルは次の形式で {{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]
344行目: 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\"}} を追加してください)。
 
   
 
次のコマンドでビデオ出力の一覧を取得できます:
 
次のコマンドでビデオ出力の一覧を取得できます:
364行目: 321行目:
 
{{Note|
 
{{Note|
 
* ドライバーをインストールした後 HDMI オーディオが動作しないときは、[[Advanced Linux Sound Architecture/トラブルシューティング#HDMI から出力できない]] に書かれた方法でセットアップをテストしてください。
 
* ドライバーをインストールした後 HDMI オーディオが動作しないときは、[[Advanced Linux Sound Architecture/トラブルシューティング#HDMI から出力できない]] に書かれた方法でセットアップをテストしてください。
* PulseAudio で音が歪む場合は {{ic|1=tsched=0}} を設定して {{ic|rtkit}} デーモンが動いているか確認してください。詳しくは [[PulseAudio/トラブルシューティング#Glitches, skips or crackling]] を参照。
+
* PulseAudio で音が歪む場合は {{ic|1=tsched=0}} を設定して {{ic|rtkit}} デーモンが動いているか確認してください。詳しくは [[PulseAudio/トラブルシューティング#バッファアンダーランのトラブルシューティング (音ズレ、音飛び、音割れ)]] を参照。
  +
* HDA 準拠のハードウェアはとても一般的なので、あなたのサウンドカードも同じモジュールを使用しているかもしれません。(alsa 設定の {{ic|defaults}} ノードを使う方法も含む)提案した方法のうち1つを使って [[Advanced Linux Sound Architecture#デフォルトサウンドカードの設定|デフォルトサウンドカードを設定]]してください。
 
}}
 
}}
   
391行目: 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">
399行目: 358行目:
 
</application>
 
</application>
 
</device>
 
</device>
<!-- Other devices ... -->
+
...
 
</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 を使ってください。}}
   
413行目: 376行目:
 
さらに EXAPixmaps を無効果することで乱れがなくなることがあります。ただし、他の問題が引き起こされる可能性があるため一般的には推奨されていません。
 
さらに EXAPixmaps を無効果することで乱れがなくなることがあります。ただし、他の問題が引き起こされる可能性があるため一般的には推奨されていません。
   
{{hc|/etc/X11/xorg.conf.d/20-radeon.conf|<nowiki>
+
{{hc|/etc/X11/xorg.conf.d/20-radeon.conf|
Section "Device"
+
Section "OutputClass"
 
Identifier "Radeon"
 
Identifier "Radeon"
Driver "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#検出されない解像度を追加する]]を参照してください。
+
[[Xrandr#検出されない解像度を追加する]] を参照してください。
   
 
=== TV 画面の回りに黒枠が表示される ===
 
=== TV 画面の回りに黒枠が表示される ===
433行目: 394行目:
 
{{Note|以下の方法を試す前に TV が正しく設定されているか確認してください (マニュアルを参照)。}}
 
{{Note|以下の方法を試す前に TV が正しく設定されているか確認してください (マニュアルを参照)。}}
   
xrandr を使ことオーバスキャンの保護をオフにできます:
+
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
   
446行目: 411行目:
   
 
3つの解決方法が考えられます:
 
3つの解決方法が考えられます:
  +
* {{ic|<nowiki>pci=nomsi</nowiki>}} をブートローダーの[[カーネルパラメータ]]に追加して見て下さい。
 
* 上のカーネルパラメータが機能しない場合、{{ic|<nowiki>pci=nomsi</nowiki>}} の代わり {{ic|noapic}} を追加してください。
+
* {{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|"Device"}} セクションで {{ic|"SWCursor" "True"}} を設定してください。
+
モニターがスリープから復帰した後にカーソルが縦に重なるなどおかしな表示がされる場合、{{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} 設定ファイルの {{ic|"OutputClass"}} セクションで {{ic|"SWCursor" "True"}} を設定してください。
   
 
=== マルチモニタモードで DisplayPort が出力されない ===
 
=== マルチモニタモードで DisplayPort が出力されない ===
460行目: 426行目:
 
=== R9-390 のパフォーマンスが出ない、あるいは不安定 ===
 
=== R9-390 のパフォーマンスが出ない、あるいは不安定 ===
   
R9-390 シリーズのカードのファームウェアには DPM 関連に問題があり、性能が発揮されなかったりクラッシュすることがあります (ゲームを遊んだり Google マップを使ったりすると発症します)。解決方法は [https://bugs.freedesktop.org/show_bug.cgi?id=91880 こちらの報告] を見ください
+
R9-390 シリーズのカードのファームウェアには DPM 関連に問題があり、性能が発揮されなかったりクラッシュすることがあります (ゲームを遊んだり Google マップを使ったりすると発症します)。バグレポートの[https://gitlab.freedesktop.org/mesa/mesa/-/issues/1222#note_240698 コメント]に修正方法が書かれあります
   
 
=== 古い Radeon カードの HDMI 接続による QHD/UHD/4K のサポート ===
 
=== 古い Radeon カードの HDMI 接続による QHD/UHD/4K のサポート ===
468行目: 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}} によってピクセルクロックの制限を変えることができるようになります。
+
また、ピクセルクロックの制限を取り払うカーネルパッチも存在しますが、カードにダメージを与える可能性があります。
  +
  +
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 オープンソースドライバをカバーしています。

目次

正しいドライバーの選択

使用しているカードにあわせて、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 カーネルモジュールはシステムの起動時に自動的に正しく読み込まれるはずです。

うまく行かない場合:

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 アプリケーション。
https://github.com/marazmista/radeon-profile || radeon-profile-gitAUR
  • CoreCtrl — 人気な汎用 GPU/CPU コントローラー。高度な使用法については Setup ページを見てください。
https://gitlab.com/corectrl/corectrl || corectrl

ドライバーオプション

以下のオプションは /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"

ColorTilingColorTiling2D は安全に有効にすることができ、おそらくデフォルトで有効になっています。タイルモードは 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

カーネルパラメータ

ヒント: カーネルモジュール#情報を取得に書かれているように systool を使うことでパラメータをデバッグすることができます。

gartsize が自動検知されない場合、radeon.gartsize=32カーネルパラメータに追加して手動で定義することができます。

ノート: 最近の AMD ビデオカードではこのパラメータはもはや必要ないはずです:
[drm] Detected VRAM RAM=2048M, BAR=256M
[drm] radeon: 2048M of VRAM memory ready
[drm] radeon: 2048M of GTT memory ready.

変更は次の起動時に有効になります。

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 でハイブリッドグラフィックを使うのに適当な方法と言えますが、ユーザーによる手動の操作が必要です。

省電力機能

ノート: 電力管理は vbios に適切な電源状態テーブルがある全てのチップ (R1xx 以降) でサポートされています。"dpm" は R6xx 以降のチップでサポートされています。

radeon ドライバでは省電力機能はデフォルトで無効化されており、必要であれば手動で有効にする必要があります。

3つの方法から選ぶことができます:

  1. dpm (カーネル 3.13 からデフォルトで有効)
  2. dynpm
  3. profile

詳しくは https://www.x.org/wiki/RadeonFeature/#index3h2 を見てください。

動的電源管理

カーネル 3.13 から、DPM (Dynamic power management) は 多くの AMD Radeon ハードウェア においてデフォルトで有効になっています。無効にするには、カーネルパラメータradeon.dpm=0 を追加してください。

ヒント: DPM は R6xx の GPU でも動作しますが、デフォルトではカーネルによって無効にされています (R7xx 以上でのみ有効になります)。radeon.dpm=1 カーネルパラメータを設定すると DPM が有効になります。

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

コマンドラインツール

  • radcard[リンク切れ 2024-10-12] - DPM の電源状態やレベルを取得・設定できるスクリプト。

古い方法

動的周波数切り替え

この方法では 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 はシステムがバッテリー電源で動作しているのかそうでないのかによって電源状態を midhigh で切り替えます。
  • 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 の負担にあわせて調整できません。重い処理でオーバーヒートする可能性があります。
  • 標準の値よりも低い値を使うときは GPU の温度に注意してください。

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>
ノート: driver は dri2 です。ビデオカードのコード (r600 など) ではありません。

vsync が無効にならない場合、/etc/X11/xorg.conf.d/20-radeon.conf を編集して無効化してください。#ドライバーオプション を見てください。

トラブルシューティング

EXA を使用している場合にパフォーマンスが出ない、あるいは乱れが生じる

ノート: 以下は R600 (Radeon X1000 シリーズ) よりも古いカードにのみ当てはまります。新しいカードの場合は EXA ではなく Glamor を使ってください。

ターミナルやウェブブラウザのスクロールが遅いなど、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 画面の回りに黒枠が表示される

ノート: 以下の方法を試す前に 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 glxgearsvblank_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 を代わりに使うと直るようです。

参照

ベンチマークでは、多くのカードでオープンソースドライバがプロプライエタリドライバと同等のパフォーマンスであるということが示されています。

翻訳ステータス: このページは en:ATI の翻訳バージョンです。最後の翻訳日は 2024-11-29 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。