インテルグラフィックス
Intel はオープンソースドライバの提供とサポートを行なっているので、今日 Intel のグラフィックカードは原則的にプラグアンドプレイです。
Intel の GPU モデル と関連するチップセット・CPU の一覧は Wikipedia の比較を見て下さい。
目次
- 1 インストール
- 2 設定
- 3 KMS (Kernel Mode Setting)
- 4 モジュールによる省電力設定
- 5 Tips and tricks
- 6 トラブルシューティング
- 6.1 Glxgears のパフォーマンスがでない
- 6.2 DRI3 の問題
- 6.3 GTK+ アプリケーションでフォントや画面の表示がおかしい (サスペンド・復帰後に文字が表示されない)
- 6.4 起動中 "Loading modules" するときに画面がブラックアウトする
- 6.5 ティアリングの解消
- 6.6 Intel ドライバで X がフリーズ・クラッシュする
- 6.7 認識されない解像度を追加する
- 6.8 libGL 9 と Intel-DRI 9 にアップグレードすると遅くなる
- 6.9 ビデオゲームでテクスチャが真っ黒
- 6.10 色が風化する (色空間の問題)
- 6.11 復帰後、バックライトが一部調整できない、もしくは全く調整できない
- 6.12 フレームバッファ圧縮の無効化
- 6.13 Chromium や Firefox が壊れる、応答しない
- 6.14 TTY を切り替えた時に垂直同期がされなくなる
- 6.15 ビデオやウェブカメラの出力にピンクと緑のゴミが入る
- 6.16 Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする
- 6.17 Skylake サポート
- 6.18 Windows をゲストとした場合にラグが発生する
- 6.19 画面がちらつく
- 7 参照
インストール
mesa パッケージをインストールしてください。3D アクセラレーションのための DRI ドライバーが含まれています。
- x86_64 環境で32ビットのサポートが必要な場合は multilib リポジトリから lib32-mesa パッケージもインストールしてください。
- (Xorg で 2D アクセラレーションを得るための) DDX ドライバーが必要な場合は xf86-video-intel パッケージをインストールしてください (推奨されません、下のノートを見てください)。
- Vulkan のサポートが必要な場合 (Ivy Bridge 以降)、vulkan-intel パッケージをインストールしてください。
ハードウェアビデオアクセラレーションも見てください。
設定
Xorg を走らせるのに特別な設定は必要ありません。
ただし、ドライバーのオプションを変更するには、以下のような Xorg 設定ファイルを作成する必要があります:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" EndSection
オプションを追加するときは Driver
の下に追加します。
設定の一覧を見るには、$ 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 の使用が必須になっています[3]。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
カーネルモジュールはモジュールオプションによって設定ができます。モジュールオプションの中には省電力機能に関係するものもあります。
次のコマンドを使うことで全てのオプションとその説明、デフォルト値のリストが出力されます:
$ modinfo -p i915
現在有効になっているオプションを確認するには、次を実行して下さい:
# systool -m i915 -av
多くのオプションはデフォルトで -1 になっており、チップのデフォルトの省電力設定が使われます。ただし、モジュールオプションを使うことでより強力な省電力設定をすることができます。
安全に有効にすることができる一般的なオプションは以下のようになります:
/etc/modprobe.d/i915.conf
options i915 enable_rc6=1 enable_fbc=1 semaphores=1
RC6 スリープモード (enable_rc6)
enable_rc6
には 1 よりも大きい値が設定できますが、使用している GPU がオプションをサポートしていなかったり他のオプションを有効にできるなくなる可能性があります [4]。
enable_rc6
に設定できる値は 1 (RC6), 2 (RC6p), 4 (RC6pp) のビットマスクです [5]。"RC6p" や "RC6pp" は電力消費がより少ないステートになります。
現在の RC6 レベルを確認するには、sysfs を見てください:
# cat /sys/class/drm/card0/power/rc6_enable
出力された数字が低い場合、おそらく他の RC6 レベルがサポートされていません。drm.debug=0xe
を使うことで DRM のデバッグ情報をカーネルログに追加することができます:
[drm:sanitize_rc6_option] Adjusting RC6 mask to 1 (requested 7, valid 1)
フレームバッファ圧縮 (enable_fbc)
フレームバッファの圧縮は Sandy Bridge 以前の古い世代の Intel GPU では信頼性がありません。以下のようなメッセージがないかシステムログをチェックしてください:
kernel: drm: not enough stolen space for compressed buffer, disabling.
Tips and tricks
アクセラレーションメソッドの選択
- UXA - (Unified Acceleration Architecture) は GEM ドライバーモデルを導入した成熟しているバックエンドです。
- SNA - (Sandybridge's New Acceleration) は高速で先進的なハードウェアサポートを提供します。
デフォルトのメソッドは SNA (2013-08-05[6]) で、UXA よりも不安定ですが高速です。Phoronix によるベンチマーク [7] を見てください。Sandy Bridge のテスト と Ivy Bridge のテスト があります。SNA で問題が発生するなら、UXA は手堅い選択です。例えば、SNA ではフルスクリーンの Flash 動画を終了するときに黒画面になることがあります。
古い 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
Glamor アクセラレーションメソッドの有効化
Glamor は Intel の実験的な OpenGL 2D アクセラレーションメソッドで、man ページには記載がありません。Glamor を使用するには、以下の行を設定ファイルに追加してください:
Option "AccelMethod" "glamor"
垂直同期 (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>
スケーリングモードの設定
フルスクリーンを使うアプリケーションで有用かもしれません:
$ 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 モジュールを設定してください。詳しい情報はカーネルパラメータを見て下さい。
これが機能しない時は、SVIDEO-1 の代わりに TV1 か VGA1 を無効にするのを試してみて下さい。
GMA 4500 での H.264 デコーディング
libva-intel-driver パッケージは GMA 4500 シリーズの GPU だけに MPEG-2 デコーディングを提供します。H.264 デコーディングのサポートは枝分かれした g45-h264 ブランチで維持されていて、AUR の libva-intel-driver-g45-h264AUR パッケージをインストールすることで使えます。しかしながらこのサポートは実験的なものであり現在活発には開発されていないことに注意して下さい。GMA 4500 シリーズ GPU のドライバと VA-API を使うことは CPU の負担を下げますが、アクセラレーションが効いていないのと同じで、スムーズに再生できるようにはならないかもしれません。mplayer を使ったテストでは H.264 でエンコードされた 1080p のビデオを vaapi を使って再生したところ (XV オーバーレイに比べて) CPU の負担は下がりましたが、途切れ途切れの再生になりました。一方 720p はうまく動きました [9]。他の報告も同じようなものでした [10]。
ガンマ値と明るさの設定
ドライバのレベルでこれらを設定する方法はありませんが、幸運なことに 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
DRI3 の問題
xf86-video-intel ではデフォルトで DRI3 が使われます。一部の環境では DRI3 によって問題が発生することがあります [11]。DRI2 を使うには設定ファイルに以下の行を追加してください:
Option "DRI" "2"
modesetting
ドライバーでは上記の方法では DRI3 を無効化することはできません。代わりに LIBGL_DRI3_DISABLE=1
環境変数を設定してください。
GTK+ アプリケーションでフォントや画面の表示がおかしい (サスペンド・復帰後に文字が表示されない)
GTK+ アプリケーションでフォントの文字が表示されなくなってしまう場合、以下の方法で直る可能性があります。/etc/environment
を編集して以下の行を追加してください:
/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer
詳しくは FreeDesktop bug 88584 を参照。
起動中 "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
カーネル 4.0.x 以上で Baytrail アーキテクチャを利用している場合にシステムが何度もフリーズする (特に動画を見たり GFX を集中使用したときに発生する) ようなときは、以下のカーネルオプションを追加することで解決します。詳しくは こちら を参照してください。
intel_idle.max_cstate=1
認識されない解像度を追加する
この問題については Xrandr のページを参照してください。
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 のレジスタを編集することで修正できる他の関連する問題も存在します。詳しくは [13] や [14] を見て下さい。
復帰後、バックライトが一部調整できない、もしくは全く調整できない
Intel graphics を使っていて製造者によるホットキーで画面の明るさを変えられない場合、次のカーネルパラメータを使って起動してみて下さい:
acpi_backlight=vendor
これで問題が解決されない場合、上のパラメータに加えて:
acpi_osi=Linux
または:
acpi_osi="!Windows 2012"
または:
acpi_osi=
を使うことで解決できるかもしれません。
また、カーネルバージョン 3.13 から、ユーザーによっては効果があるカーネルコマンドラインのパラメータがあります:
video.use_native_backlight=1
上記のどの方法を使っても問題が解決されない場合、以下の内容で /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 シリーズのチップセットなど、Sandy Bridge 以前のカードでフレームバッファ圧縮を有効にするとエラーメッセージが延々と表示されます:
$ 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.enable_fbc=0
をカーネルラインパラメータに追加してください。圧縮の無効化による効果については ここ に詳しい情報が載っています。
Chromium や Firefox が壊れる、応答しない
Chromium や Firefox の表示がおかしくなったり、反応しなくなる場合はアクセラレーションメソッドを "uxa" に設定してみてください。
TTY を切り替えた時に垂直同期がされなくなる
カーネル 3.19.3 以降にはリグレッションが存在し (古いカーネルにも存在する可能性あり)、Broadwell のマシンで TTY を切り替えると垂直同期が消失します [15]。修正するには、カーネルコマンドラインに i915.enable_ips=0
を追加するか、カーネル 4.1 を使っている場合、こちら のパッチを使ってカーネルを再ビルドします。メインラインカーネルには 4.2-rc1 で修正が入っています。
ビデオやウェブカメラの出力にピンクと緑のゴミが入る
Broadwell のマシンで xv出力や Intel Textured Video を使用するアプリケーション (Skype や VLC) を使うと、ビデオストリームにピンクと緑の乱れが入ることがあります。これは Broadwell のビデオの問題で、上流では2015年4月16日に修正されています [16]。xf86-video-intel をアップデートすると修正されます。
Broadwell/Core-M チップでカーネル 4.0 以上を使っている場合にクラッシュする
X/Wayland がロードされた数秒間、マシンがフリーズして、journalctl に以下のような Intel Graphics に関連するカーネルのクラッシュログが残ることがあります:
Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at (null) Jun 16 17:54:03 hostname kernel: IP: [< (null)>] (null) ... Jun 16 17:54:03 hostname kernel: CPU: 0 PID: 733 Comm: gnome-shell Tainted: G U O 4.0.5-1-ARCH #1 ... Jun 16 17:54:03 hostname kernel: Call Trace: Jun 16 17:54:03 hostname kernel: [<ffffffffa055cc27>] ? i915_gem_object_sync+0xe7/0x190 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa0579634>] intel_execlists_submission+0x294/0x4c0 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa05539fc>] i915_gem_do_execbuffer.isra.12+0xabc/0x1230 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa055d349>] ? i915_gem_object_set_to_cpu_domain+0xa9/0x1f0 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffff811ba2ae>] ? __kmalloc+0x2e/0x2a0 Jun 16 17:54:03 hostname kernel: [<ffffffffa0555471>] i915_gem_execbuffer2+0x141/0x2b0 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa042fcab>] drm_ioctl+0x1db/0x640 [drm] Jun 16 17:54:03 hostname kernel: [<ffffffffa0555330>] ? i915_gem_execbuffer+0x450/0x450 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffff8122339b>] ? eventfd_ctx_read+0x16b/0x200 Jun 16 17:54:03 hostname kernel: [<ffffffff811ebc36>] do_vfs_ioctl+0x2c6/0x4d0 Jun 16 17:54:03 hostname kernel: [<ffffffff811f6452>] ? __fget+0x72/0xb0 Jun 16 17:54:03 hostname kernel: [<ffffffff811ebec1>] SyS_ioctl+0x81/0xa0 Jun 16 17:54:03 hostname kernel: [<ffffffff8157a589>] system_call_fastpath+0x12/0x17 Jun 16 17:54:03 hostname kernel: Code: Bad RIP value. Jun 16 17:54:03 hostname kernel: RIP [< (null)>] (null)
この問題は execlist のサポート (カーネル 4.0 からデフォルトに変更されました) を無効化することで解決します。以下のカーネルパラメータを追加してください:
i915.enable_execlists=0
Skylake サポート
i915 DRM ドライバーは様々な GPU のハングアップやクラッシュ、あるいはシステムの完全なフリーズを引き起こすことが知られています。問題を回避するにはハードウェアアクセラレーションを無効化する必要があるかもしれません。解決方法として以下の Xorg 設定を使う方法があります:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "DRI" "false" EndSection
もしくは、Chromium や Firefox ブラウザなどアプリケーションごとにハードウェアレンダリングを無効化するように直接設定することも可能です。
i915.enable_rc6=0
カーネルブートパラメータを追加することで問題が解決すると報告しているユーザーもいます。このパラメータを使用すると CPU/GPU のハイパワーモードが解除されなくなりますが、GPU のハングアップやシステムのフリーズが解消するようです。
Windows をゲストとした場合にラグが発生する
VirtualBox でホスト側から(マウスカーソルを動かすなどして)画面を更新しないと Windows ゲストのビデオ出力が止まってしまうことがあります。enable_fbc=1
オプションを削除すれば問題は解決します。
画面がちらつく
Intel の iGPU によって使われている省電力機能の中にはちらつきを発生させるものがあります。適切なカーネルパラメータオプションを使って無効化することで解決できます:
- Rc6 スリープモード (#RC6 スリープモード (enable_rc6) を参照) は
i915.enable_rc6=0
で無効化できます。
- カーネルのバージョン 4.6 からパネルセルフリフレッシュ (PSR) はデフォルトで有効になります (FS#49628 FS#49371 FS#50605)。無効化するには
i915.enable_psr=0
オプションを使ってください。
参照
- https://01.org/linuxgraphics/documentation (サポートされているハードウェア一覧など)
- Arch Linux フォーラム: Intel 945GM, Xorg, Kernel - performance