Intel Graphics (日本語)
| 概括 |
|---|
| Intel のグラフィックカード・チップセットと、intel ビデオドライバの情報。 |
| 関連記事 |
| Intel GMA3600 |
| Poulsbo |
| Xorg (日本語) |
Intel はオープンソースドライバの提供とサポートを行なっているので、今日 Intel のグラフィックカードは原則的にプラグアンドプレイです。
Intel の GPU モデル と関連するチップセット・CPU の一覧は Wikipedia の比較を見て下さい。
インストール
前提条件: Xorg (日本語)
オフィシャルレポジトリから xf86-video-intel パッケージをインストールします。2D アクセラレーションのための DDX ドライバと古い GPU でのビデオデコーディングのための XvMC ドライバが含まれています。intel-dri が依存として必要で、これは 3D アクセラレーションのための DRI ドライバです。
新しい GPU でのビデオデコーディング・エンコーディングのハードウェア・アクセラレーションを有効にするには、libva-intel-driver として提供されている VA-API (日本語) ドライバをインストールしてください、こちらもオフィシャルレポジトリにあります。
設定
X.org を走らせるのに特別な設定は必要ありません (xorg.conf は不要です、ただし、使うのなら正しく設定しなくてはなりません)。
設定の一覧を見るには、man intel と入力してください。
KMS (Kernel Mode Setting)
X を走らせたり GNOME, KDE, Xfce, LXDE などのデスクトップ環境を使うには KMS が必要です。KMS は i915 DRM ドライバを使う Intel チップセットによりサポートされておりカーネル v2.6.32 よりデフォルトで有効にされています。xf86-video-intel ドライバのバージョン 2.10 からは UMS のサポートは打ち切られ(非常に古い 810 チップセットファミリーは例外)、KMS の使用が必須になっています[1]。KMS は基本的にカーネルが起動してから初期化されますが、起動中に KMS を有効にして、全てのブートプロセスを最大解像度で実行することもできます。
起動中に KMS を有効にするには /etc/mkinitcpio.conf の MODULES 行に i915 モジュールを追加します:
MODULES="i915"
カスタムした EDID ファイルを使っている場合は、EDID ファイルも initramfs に入れる必要があります:
/etc/mkinitcpio.conf
FILES="/lib/firmware/edid/your_edid.bin"
initramfs を再生成します:
# mkinitcpio -p linux
そしてシステムを再起動してください。うまく機能するはずです。
モジュールによる省電力設定
i915 カーネルモジュールは /etc/modprobe.d/i915.conf の設定によって使う省電力オプションを決めることができます。オプションの一覧を見るには次のコマンドを実行してください:
$ modinfo i915 | grep power
/etc/modprobe.d/i915.conf の例:
options i915 i915_enable_rc6=7 i915_enable_fbc=1 lvds_downclock=1
Tips and tricks
アクセラレーションメソッドの選択
- UXA - (Unified Acceleration Architecture) は GEM ドライバーモデルを導入した成熟しているバックエンドです。
- SNA - (Sandybridge's New Acceleration) は高速で先進的なハードウェアサポートを提供します。
デフォルトのメソッドは SNA (2013-08-05[2]) で、UXA よりも不安定ですが高速です。Phoronix によるベンチマーク [3] を見てください。Sandy Bridge のテストと Ivy Bridge のテストがあります。SNA で問題が発生するなら、UXA は手堅い選択です。
古い UXA メソッドを使いたいならば、次の内容で /etc/X11/xorg.conf.d/20-intel.conf を作って下さい:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "uxa" EndSection
スケーリングモードの設定
フルスクリーンを使うアプリケーションで有用かもしれません:
$ xrandr --output LVDS1 --set PANEL_FITTING param
選べる param は:
-
center: 解像度は固定され、スケーリングは無効になります -
full: 画面いっぱいまで解像度がスケールします -
full_aspect: アスペクト比を維持したままスケールします
機能しない場合、次を試して下さい:
$ xrandr --output LVDS1 --set "scaling mode" param
param は "Full", "Center" , "Full aspect" のいずれかです。
KMS Issue: コンソールの画面が狭い
起動中に低解像度のビデオが転送されると、ターミナルが使える画面が小さくなることがあります。修正するには、i915 ブートローダのカーネルのコマンドラインパラメータに video=SVIDEO-1:d を加えてはっきりと転送を無効にするよう i915 モジュールを設定してください。詳しい情報は Kernel parameters (日本語) を見て下さい。
これが機能しない時は、SVIDEO-1 の代わりに TV1 か VGA1 を無効にするのを試してみて下さい。
GMA 4500 での H.264 デコーディング
libva-intel-driver パッケージは GMA 4500 シリーズの GPU だけに MPEG-2 デコーディングを提供します。H.264 デコーディングのサポートは枝分かれした g45-h264 ブランチで維持されていて、Arch User Repository (日本語) の libva-driver-intel-g45-h264 パッケージをインストールすることで使えます。しかしながらこのサポートは実験的なものであり現在活発には開発されていないことに注意して下さい。GMA 4500 シリーズ GPU のドライバと VA-API を使うことは CPU の負担を下げますが、アクセラレーションが効いていないのと同じで、スムーズに再生できるようにはならないかもしれません。mplayer を使ったテストでは H.264 でエンコードされた 1080p のビデオを vaapi を使って再生したところ CPU の負担は下がりました(XV オーバーレイに比べて)が、途切れ途切れの再生になりました。一方 720p はうまく動きました [4]。他の報告も同じようなものでした。 [5]。
ガンマ値と明るさの設定
ドライバのレベルでこれらを設定する方法はありませんが、幸運なことに xgamma や xrandr を使って設定することができます。
ガンマ値を設定するには:
$ xgamma -gamma 1.0
もしくは:
$ xrandr --output VGA1 --gamma 1.0:1.0:1.0
明るさを設定するには:
$ xrandr --output VGA1 --brightness 1.0
トラブルシューティング
Glxgears のパフォーマンスがでない
グラフィックパフォーマンスを調べるために glxgears を動かした時、結果が 60 FPS を前後することに気づいたかもしれません。例えば:
[...] 311 frames in 5.0 seconds = 61.973 FPS 311 frames in 5.0 seconds = 62.064 FPS 311 frames in 5.0 seconds = 62.026 FPS [...]
これはパフォーマンスの欠落によるものではありません。ディスプレイのリフレッシュレートにあわせて、垂直同期を行なっているためです。
環境変数 vblank_mode=0 を付けることで垂直同期を無効にして glxgears を実行できます:
$ vblank_mode=0 glxgears
VSYNC を無効にする
VSYNC(垂直同期)を無効にするには /etc/X11/xorg.conf.d/20-intel.conf の Section "Device" に Option "SwapbuffersWait" "false" を加えて下さい。
もしくは、~/.drirc の vblank_mode を 0 に設定して、driver を dri2 にセットします:
~/.drirc
<device screen="0" driver="dri2"> <application name="Default"> <option name="vblank_mode" value="0"/> </application> </device>
起動中 "Loading modules" するときに画面がブラックアウトする
KMS の"遅いスタート"を使っているとき "Loading modules" で画面がブラックアウトする場合、initramfs に i915 と intel_agp を加えると解決するかもしれません。上記の KMS セクションを見て下さい。
または、次の カーネルパラメータ を加えるとうまく動くかもしれません:
video=SVIDEO-1:d
VGA に出力する必要があるときは次を使ってみて下さい:
video=VGA-1:1280x800
ティアリングの解消
SNA アクセラレーションメソッドを使っている場合、ティアリングが発生することがあります。これを解消するには、ドライバーの "Tearfree" オプションを有効にしてください:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" EndSection
Intel ドライバで X がフリーズ・クラッシュする
X のクラッシュや GPU のハングアップ、X のフリーズなどが起こる場合、NoAccel オプションを使って GPU の使用を無効にすることで修復できます:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "NoAccel" "True" EndSection
または、DRI オプションを使って 3D アクセラレーションだけを無効にすることもできます:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "DRI" "False" EndSection
設定ファイルに以下のオプションを使うとクラッシュする場合は
Option "TearFree" "true" Option "AccelMethod" "sna"
ブートパラメータに次を追加すると修正できます。
i915.semaphores=1
認識されない解像度を追加する
この問題については Xrandr page を参照してください。
libGL 9 と Intel-DRI 9 にアップグレードすると遅くなる
Intel-DRI 8 と libGL 8 にダウングレードしてください。
ビデオゲームでテクスチャが真っ黒
ビデオゲームでテクスチャが黒くなる場合、S3TC テクスチャコンプレッションのサポートを有効にすることで解決できます。driconf を使って有効にするか、 libtxc_dxtn をインストールしてください。
この"問題"は新しいドライバで修正される予定です。
S3TC についての詳しい情報は: http://dri.freedesktop.org/wiki/S3TC http://ja.wikipedia.org/wiki/DXTC
この問題が起こるゲームのひとつは Oil Rush です。
色が風化する (色空間の問題)
カーネル 3.9 には Intel ドライバーで簡単に RGB リミテッドレンジの設定ができる変更が含まれており、場合によってはこの変更によって色がおかしくなることがあります。"Broadcast RGB" プロパティの新しい "Automatic" モードに関係しています。
xrandr --output <HDMI> --set "Broadcast RGB" "Full" (<HDMI> は適切な出力デバイスに置き換えてください、xrandr を実行することで確認できます) のようにしてモードを強制することが可能です。これを .xprofile に追加して、グラフィカルモードが始まる前にコマンドが実行できるように実行可能属性を付けて下さい。
また、GPU のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [6] や [7] を見て下さい。
復帰後、バックライトが一部調整できない、もしくは全く調整できない
Intel graphics を使っていて製造者によるホットキーで画面の明るさを変えられない場合、次のカーネルパラメータを使って起動してみて下さい:
acpi_backlight=vendor
これで問題が解決されない場合、上のパラメータに加えて:
acpi_osi=Linux
か
acpi_osi="!Windows 2012"
を使うことで解決できるかもしれません。
どちらでも問題が解決されない場合、以下の内容で /etc/X11/xorg.conf.d/20-intel.conf を編集・作成してください:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
Identifier "card0"
Driver "intel"
Option "Backlight" "intel_backlight"
BusID "PCI:0:2:0"
EndSection
フレームバッファ圧縮の無効化
Intel Corporation Mobile 4 シリーズのチップセットなど、カードによってはフレームバッファ圧縮を有効にするとエラーメッセージが延々と表示されます:
$ dmesg | tail [ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling [ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this
解決方法はフレームバッファ圧縮を無効化することで、これによって少しだけ電力消費が増えます。無効化するには i915.i915_enable_fbc=0 をカーネルラインパラメータに追加してください。圧縮の無効化による効果については ここ に詳しい情報が載っています。
Chrome/Chromium が壊れる
Chromium の表示がおかしくなる場合はアクセラレーションメソッドを "uxa" に設定してください。
参照
- https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など)
- KMS — Kernel Mode Setting に関する記事
- Xrandr — 解像度に関する問題についてはこちらを参照
- Arch Linux フォーラム: Intel 945GM, Xorg, Kernel - performance