#title オープンソースATI用ドライバについて(xserver-xorg-video-ati) * '''対象とするUbuntuのバージョン''' * 11.04 Natty Narwhale * 10.10 Maverick Meerkat * 10.04 Lucid Lynx ||<>|| 本文書は、[[https://help.ubuntu.com/community/RadeonDriver|この]]文書を元に和訳、追記したものです。原文も併せて参照下さい。 この文書は、"radeon"、"ati"として知られるATIグラフィックカード用のフリーのオープンソースドライバの使用方法について説明します。このドライバは2D、もしくは、3Dのアクセラレーションを提供します。一部のカードに対しては、このドライバはAMD/ATI Inc.から提供されるクローズドソースのプロプライエタリドライバ、"fglrx"ドライバほど速くはありません。しかし、デュアルヘッドサポートに関しては優位にありますし、fglrxドライバがサポートしていない、より古いチップもサポートしています。 == サポート範囲について == === デバイスの確認 === 最初にグラフィックカードの名前とチップセットを確認して下さい。 {{{lspci -nn | grep VGA}}} を実行すると、下記のようなグラフィックカードについての情報が出力されます。 例1: {{{ 01:00.0 VGA compatible controller: ATI Technologies Inc RV350 AS [Radeon 9550] }}} 例2: {{{ 01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RS880 [Radeon HD 4200] [1002:9710] }}} === サポートされないデバイス === 現在、下記のデバイスでは、"radeon"ドライバを使用することはできません。 {{{ CAYMAN RadeonHD 69x0 series - kernel 2.6.39で基本的なモードセッティングはサポートされるでしょう。 }}} これらのカードを使用する場合は、"fglrx"ドライバを使用して下さい。 === 要 Natty/11.04 および モードセット === 下記のデバイスは Ubuntu Natty/11.04 で動作するはずです。しかしながら、3Dアクセラレーションを得るには、標準のものより新しいバージョンの Mesa (7.11.x) が必要になります (Nattyのデフォルトは 7.10.xです) 。 {{{ PALM RadeonHD 6310/6250 TURKS RadeonHD 6570/6670 CAICOS RadeonHD 6450 }}} === 3Dを含むサポート === 下記のデバイスでは、3Dアクセラレーションもサポートされています。 {{{ R100 Radeon 7200 RV100 Radeon 7000(VE), M6, RN50/ES1000 RS100 Radeon IGP320(M) RV200 Radeon 7500, M7, FireGL 7800 RS200 Radeon IGP330(M)/IGP340(M) RS250 Radeon Mobility 7000 IGP R200 Radeon 8500, 9100, FireGL 8800/8700 RV250 Radeon 9000PRO/9000, M9 RV280 Radeon 9200PRO/9200/9200SE/9250, M9+ RS300 Radeon 9100 IGP RS350 Radeon 9200 IGP RS400/RS480 Radeon XPRESS 200(M)/1100 IGP R300 Radeon 9700PRO/9700/9500PRO/9500/9600TX, FireGL X1/Z1 R350 Radeon 9800PRO/9800SE/9800, FireGL X2 R360 Radeon 9800XT RV350 Radeon 9600PRO/9600SE/9600/9550, M10/M11, FireGL T2 RV360 Radeon 9600XT RV370 Radeon X300, M22 RV380 Radeon X600, M24 RV410 Radeon X700, M26 PCIE R420 Radeon X800 AGP R423/R430 Radeon X800, M28 PCIE R480/R481 Radeon X850 PCIE/AGP RV505/RV515/RV516/RV550 Radeon X1300/X1400/X1500/X2300 R520 Radeon X1800 RV530/RV560 Radeon X1600/X1650/X1700 RV570/R580 Radeon X1900/X1950 RS600/RS690/RS740 Radeon X1200/X1250/X2100 R600 RadeonHD 2900 RV610/RV630 RadeonHD 2400/2600 RV620/RV635 RadeonHD 3450/3470 RV670 RadeonHD 3850/3870 RS780 RadeonHD 3100/3200/3300 RS880 RadeonHD 4100/4200/4290 RV710 RadeonHD 4350/4550 RV730 RadeonHD 4650/4670 RV770 RadeonHD 4850/4870 REDWOOD RadeonHD 5550/5570/5670 JUNIPER RadeonHD 5750/5770 CYPRESS RadeonHD 5850/5870 HEMLOCK RadeonHD 5970 }}} == プロプライエタリドライバ、fglrxの削除 == ''fglrx''はAMD/ATIより提供される、クローズドソースのプロプライエタリドライバの名称です。これはオープンソースの"radeon"ドライバと共存することができません。もし、"fglrx"カーネルモジュールが起動時にロードされると、"radeon"ドライバでXを起動することはできるのですが、"Direct Rendering(ダイレクトレンダリング)"(DRI)が無効化されます。結果として、大幅な性能低下を起こしてしまいます。システム -> 設定 -> ハードウェアドライバ から、"ATI accelerated graphics driver"を使用しないように設定して下さい。 もし、"fglrx"ドライバが不要になった場合は、以下の手順で削除した方がよいでしょう。 {{{ $ sudo apt-get remove --purge xorg-driver-fglrx }}} その後、再起動して下さい。 /usr/lib内のlibGL.soがxorg-driver-fglrxがインストールしたもののままになっているかも知れません。下記を実行することにより、簡単に確認できます。 {{{ $ glxinfo |grep vendor }}} もし、 {{{client glx vendor string: ATI}}} のような表示がでれば、libGL.soはATIのものになっています。 libgl1-mesa-glx、および、libgl1-mesa-driが正常にインストールされているかを確認して下さい。 {{{ $ sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri }}} また、"fglrx"が/etc/modulesに記載されていないことを確認して下さい。 もちろん、xorg.confにも"fglrx"の項目が無いことも確認して下さい。 また、[[https://wiki.ubuntu.com/X/Troubleshooting/FglrxInteferesWithRadeonDriver|X/Troubleshooting/FglrxInteferesWithRadeonDriver]]も参照下さい。 == X.orgの推奨設定 == 最近のバージョンのUbuntuでは、ATIドライバに対して特別な設定はいりません。xorg.confを消してしまった方が、問題無くシステムが稼働するでしょう。 == 新しい方法でのX.orgのカスタマイズ == Ubuntu Karmic Koala 9.10以降では、ATIドライバのカーネルモード設定(Kernel Mode Settings, KMS)をサポートしています。このモードではハードウェアに対し、必要な設定情報を自動検出し、適切な設定で動作させることができます。注目すべき点は、KMSは例えばゲームのような3DウィンドウやFlashの再生から乱れ、ちらつきを取り除くという点です。KMSの使用においては、xorg.conf設定ファイルは必要ありません。 KMSを有効化するためには、[[https://wiki.ubuntu.com/X/KernelModeSetting|KernelModeSetting page]]の、'''"KMS with a Radeon card"'''節を参照下さい。 == 従来の方法でのX.orgのカスタマイズ == 下記の説明は主に/etc/X11/xorg.conf設定ファイルの編集についてです。前述のように、xorg.confファイルの設定は不要ですが、問題が起きた際にはxorg.confで特別な指定をすることで問題を回避できるかも知れません。編集には管理者権限(''sudo''コマンドを使って下さい)が必要になります。Ubuntu(Gnome)環境ではgedit、Kubuntu(KDE)環境ではkateを使うのもよいでしょう。端末から実行するなら、vimやnanoが使えます。 {{{ sudo vim /etc/X11/xorg.conf }}} もしくは {{{ sudo nano /etc/X11/xorg.conf }}} === グラフィックカードの"Device"節の編集 === 最初に、あなたのグラフィックカードの関連する"Device"節を見つけて下さい。名前はどんなものが付いているか判りませんし、存在していないかも知れません。 下記に一例を示します。 {{{ Section "Device" Identifier "Radeon 9600" Driver "ati" BusID "PCI:1:0:0" Option "XAANoOffscreenPixmaps" EndSection }}} ''Identifier''はグラフィックカードの名前です。短い方が便利ですが、どんな名前でも構いません(英数文字だけにしておいた方が無難ではあります)。 ''Driver''は、どのドライバを使うかを指定します。ここは{{{ati}}}であるべきで、{{{radeon}}}、あるいは、{{{fglrx}}}であるべきではありません。"ati"ドライバは、"radeon"ドライバがロード可能であればそれをロードするラッパーです。 ''BusID''にはグラフィックカードのハードウェアアドレスを与えます。これは例えAGPバス接続カードであったとしても、常にPCIと書きます。BusIDは{{{lspci}}}コマンドで調べることができるでしょう。 lspciで01:00.0と表示されたとすると、xorg.confの中に書くべきBusIDは{{{"PCI:1:0:0"}}}となります(注意: lspciが表示する数値は16進数で、xorg.confに記述するべき数値は10進数であることに注意して下さい)。 {{{"XAANoOffscreenPixmaps"}}}オプションは、AIGLXデスクトップアクセラレーションで必要になるかも知れません。最新のバージョンのUbuntuでは、これを無効化して問題無く動くか試してみて下さい(恐らく速くなります)。 もし、OpenGLなアプリケーション(glxgearsなど)を実行した際に、コンピュータがフリーズするようなことがあれば、下記のオプションを追加してみて下さい。 {{{ Option "BusType" "PCI" Option "AGPMode" "1" }}} === "Monitor"節 === "Monitor"節は下記のようであるべきです。 注意: HorizSync/VertRefresh設定はモニタの信号周波数に影響します。下記はただの例です。正しくなかったり、限界を越えた周波数でモニタを駆動しようとすると、保護機能が働いて出力を止めてしまったり、古いモニタの場合は破壊に至ることもありす。モニタベンダの情報やマニュアルを参照し、あなたのモニタのモデルの正しい周波数を確認して下さい。もしくは、値を設定せずに、XサーバにDDCによる自動周波数検知機能を試行させて下さい。 {{{ Section "Monitor" Identifier "Generic Monitor" Option "DPMS" HorizSync 28-72 VertRefresh 43-60 EndSection }}} ''Identifier''はモニタの名前です。 DPMSオプションは、X.orgにモニタの電源管理をすることを指示します。必要というわけではありません。 HorizSyncとVertRefreshオプションは、DDCによる自動検出が失敗するか、周波数を特別に指定したい場合を除き、必要なものではありません。モニタの付属文書、モニタベンダのサイト、もしくは、モニタの背面のラベルなどを参照し、あなたのモニタモデルの正しい周波数情報を入手して下さい。 正しくないHorizSync/VertRefreshは危険です。指定しない場合、X.orgはモニタのDDCより値を読み出します。モニタ、グラフィックカード、および、データケーブルはそれをサポートしているものである必要があります(そして99.9%の場合サポートしています)。sRGBのVGAケーブルだけはDDCデータを転送できません。 === "Screen"節 === 基本的には下記のようになるでしょう。 {{{ Section "Screen" Identifier "Default Screen" Device "Radeon 9600" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1440x900" "1024x768" EndSubSection EndSection }}} ''Identifier''はスクリーンの名前です。実のところ名前はなんでも構わないのですが、短いものにしておけばよいでしょう。 ''Device''はグラフィックカードに与えた名前です。 ''Monitor''はモニタに与えた名前です。 ''DefaultDepth''は色深度です。X.orgに色深度を強制したい場合に指定します。大抵の場合は24にしたいと思うでしょう。指定しない場合は、X.orgは全ての使用可能な範囲を使用します(デバイスのサポート状況により8、16、24、または、32となります)。 "Display"サブセクションのModes行はX.orgに明示的に特定のモードだけを使うように指示しますが、これはモニタがサポートするものでなければなりません。これは、X.orgに利用可能な最大解像度をログイン画面に使わせたくない場合や、サポートされる(あるいはサポートされているとDDCで報告されても実際には機能しない)モードの特定のものを除外する場合に便利です。もし、判らない場合は、1024x768を指定して下さい。大抵の場合は問題とはならないでしょう。もし、判る場合は、好みの解像度を最初に書いて下さい。そして他の利用可能な解像度をその後ろに列記して下さい。 VRAMの少ないグラフィックカードでは、デフォルト値(/var/log/Xorg.0.logを参照下さい)が少しメモリを食い過ぎになっていて、"Screen"セクションの"Display"サブセクションに"Virtual"行を追加しなければならないかも知れません。 {{{ Virtual 1024 768 }}} x(この例では1024)とy(この例では768)の値は、希望する仮想デスクトップのサイズに合わせて指定して下さい。 === 仕上げ === 下記のセクションが設定ファイルに存在しないのであれば、一番最後の部分に追加しておいて下さい。 {{{ Section "DRI" Mode 0666 EndSection Section "Extensions" Option "Composite" "Enable" EndSection }}} その後、"ServerLayout"セクションの内容を確認して下さい。 {{{ Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" EndSection }}} ''Identifier''は変更しないで下さい。 ''Screen''には"Screen"セクションで付けた名前を書いて下さい。 === 再起動 === 例えばテキストコンソールに移動(ctrl-alt-F1)して、ログインし、下記を実行するなどしてXサーバを再起動して下さい。 {{{ sudo /etc/init.d/gdm restart }}} あるいはPCを再起動して下さい。 == ドライバの試走 == * ドライバがKMS(カーネルモード設定、Kernel Mode Setting)で動いているかどうかは、下記を実行して確認できます。 {{{ dmesg | grep drm }}} これにより、drmが初期化され使用可能になったかが表示されます。フレームバッファやモードセットについての情報も出力されるでしょう。下記に一例を示します。 {{{ [ 2.699321] [drm] Initialized drm 1.1.0 20060810 [ 2.819877] [drm] set up 7M of stolen space [ 3.334947] [drm] TV-14: set mode NTSC 480i 0 [ 3.493351] fb0: inteldrmfb frame buffer device [ 3.513539] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0 [ 3.627621] [drm] LVDS-8: set mode 1280x800 1d [ 4.227945] [drm] TV-14: set mode NTSC 480i 0 }}} * 3D支援が有効になっているかは、下記を実行してOpenGLアクセラレーションが有効になっているかを調べることで確認できす。 {{{ $ glxinfo | grep vendor }}} これはSGIになっているべきです。もし、それ以外が表示されれば、ドライバが正常にインストールされていません。Xサーバが再起動されているか確認して、確実に再起動されていてもこの状態になっているのであれば、"プロプライエタリなfglrxドライバの削除"の項を参照下さい。また、 {{{ $ glxinfo | grep "direct rendering" }}} を実行して、''direct rendering''がNoとなった場合、あなたのカードはオープンソースドライバでサポートされていないものであると思われます。諦めてfglrxドライバを使用して下さい。 トラブルシューティングのために、 {{{ $ LIBGL_DEBUG=verbose glxinfo }}} の出力を見るのもよいでしょう。 == 関連情報 == * [[http://wiki.x.org/wiki/radeon|X.org wiki(radeon)]] - X.orgのradeonのページ * [[http://www.x.org/wiki/radeonhd|X.org wiki(radeonhd)]] - X.orgのradeonhdのページ * [[https://wiki.ubuntu.com/Bugs/AtiDriver|Bugs in x.org ati driver]] - "ati"ドライバの既知のバグについて * [[http://dri.freedesktop.org/wiki/ATIRadeon?highlight=(CategoryHardware)|DRI wiki(ATIRadeon)]] - ATI向けの3Dアクセラレーションの開発状況など * [[http://www.thinkwiki.org/wiki/Additional_options_for_the_radeon_driver|Thinkpad Wiki Page On Radeon Driver]] - "radeon"のオプションや設定についての情報があります * [[http://wiki.archlinux.org/index.php/ATI|Arch Linux ati driver]] - TV出力に関する情報があります * [[http://ftp.x.org/pub/X11R7.1/doc/RELNOTES.html|Xorg 7.1 Manual]] - X.org 7.1の公式文書