対象とするUbuntuのバージョン
- 10.04 Lucid Lynx
Contents |
本文書は、この文書の2010/8/20現在の内容を元に和訳、追記したものです。必ず原文を参照し、最新の情報との相違点について確認願います。
現在、Ubuntu 10.04 Lucid Lynxにおいて、i845, i855などのi8xx系グラフィックチップでXがフリーズする現象が見られています。 異なるいくつかの環境で試験しましたが、全ての環境で問題を解決できる手段は見つかっていません。以下は特定の環境で問題を解決できるかも知れない対策の例です。
テスト段階の対策候補
下記の対策は現在テスト段階です。これらの対策の導入前に、他のワークアラウンドを適用している場合は、全て元の状態に戻して下さい。
GTT Incoherencyパッチ
注意: このパッチはi855チップセット専用に書かれています。他のi8xx系チップセットはサポートされていません。
Daniel Vetterによる、GTT incoherency問題を解決したパッチが公開されています。このパッチはStefan Glasenhardtにより、ふたつのDKMSモジュールとしてパッケージ化されています。
更新版intelドライバのインストール
https://launchpad.net/~glasen/+archive/intel-driver
sudo add-apt-repository ppa:glasen/intel-driver sudo apt-get update && sudo apt-get upgrade
855gm PPAおよびパッチをあてたカーネルモジュールのインストール
https://launchpad.net/~glasen/+archive/855gm-fix
sudo add-apt-repository ppa:glasen/855gm-fix sudo apt-get update && sudo apt-get install dkms 855gm-fix-dkms
結果の報告
テスト結果は http://bugs.freedesktop.org/show_bug.cgi?id=27187 に報告して下さい。 (訳注: 英語で適切な情報の提供、および、その後のコミュニケーションに自信が無い場合は報告しない方がよいかと思います)
Workarounds
ワークアラウンド A: KMSの有効化
リリースに際し、我々(訳注: Ubuntu開発チームを指します)はi8xx系ハードウェアのKMSをブラックリストに登録し、読み込まれないようにすることを決定しました。もし、beta1やそれ以前のUbuntuで正常に動作することが確認できているのであれば、この方法が有効かも知れません。
KMSを再度有効にするためには、下記のコマンドを「端末」ウィンドウで実行し、再起動して下さい。
echo options i915 modeset=1 | sudo tee /etc/modprobe.d/i915-kms.conf sudo update-initramfs -u
この方法にはバグがあり、場合によってはi8xx系ハードウェア環境で、LiveCD/USB、クリーンインストール環境、または、アップグレード環境で、画面のブラックアウトを招くことがあります。このケースに該当する場合であって、上記のワークアラウンドを適用する場合には、カーネルの起動パラメータに"i915.modeset=1"を追加して下さい。
LiveCD起動時の設定:
- キーボードと棒の絵が表示される紫色の初期画面で、エンターキーを押し、起動メニューを表示させます。
- 言語を選択し、エンターを押して決定し、F6キーを押し、最後にESCキーを押します。
- "i915.modeset=1"を"quiet splash"の後ろに半角スペースを挟み追加します。
- エンターキーを押してLiveCDから起動します。
インストール後の設定:
- 起動時にシフトキーを押しっぱなしにして、GRUBメニューを表示させます。
- 'e'キーを押し、編集(edit)モードに入ります。
- "i915.modeset=1"を"quiet splash"の後ろに半角スペースを挟み追加します。
- Ctrl+xを押して、起動します。
もし、"i915.modeset=1"を起動パラメータに追加することで問題無く起動できるようになった場合は、上記の端末でのコマンドを実行し、変更を恒久化させて下さい。
ワークアラウンド B: vesaドライバへの切り替え
下記を/etc/X11/xorg.confに貼り付けて下さい。
Section "Device" Identifier "Configured Video Device" Driver "vesa" EndSection Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection
vesaドライバに切り替えることで、フリーズの問題は100%解決します。しかしながら、これは機能的に多くの犠牲を伴います。3Dのハードウェアアクセラレーションは機能せず、2Dアクセラレーションは機能せず、高解像度での画面表示もできず、外部モニタのサポートも充分ではありません。また、別の問題もあるかも知れません。
ワークアラウンド C: 2.9.1以外のintel DDXドライバの使用
ダウングレード
2.8.0ドライバへのダウングレードパッケージが、X-Retro PPAで公開されています。
https://edge.launchpad.net/~ubuntu-x-swat/+archive/x-retro
なかには、このドライバの方が2.9ドライバより安定しているというユーザもいます。しかし、完全にフリーズしなくなるわでは無く、頻度が落ちるということのようです。つまり、人によって意見は様々ということです。
また、このバージョンのドライバには、パフォーマンスが悪いという問題もあります。パフォーマンスの改善に関するTipsについては、ubuntugeekを参照下さい。
アップグレード
2.11.0ドライバへのアップグレードパッケージがX-Updates PPAで公開されています。
https://launchpad.net/~ubuntu-x-swat/+archive/x-updates
中には、このドライバで問題が解決したというユーザもいるようです。
ワークアラウンド D: 2.6.32系列では無いカーネルを使う
ダウングレード
多くのユーザが、カーネルを2.6.31にダウングレードすることで問題が解決したと報告しています。異なるカーネルを起動する場合、起動時にシフトキーを押しっぱなしにして、GRUBのメニューを開き、別カーネルを選択して下さい。
アップグレード
多くの場合、メインラインのカーネルにアップグレードすることでも問題を解決できます。ただし、メインラインのカーネルを使用することには、いくつかの欠点もあります。
- 例えば起動時間の低減のための仕組みであるureadaheadなどの、ubuntu独自の修正が無くなります。
システム->設定->ハードウェアドライバ(例えば、nVidia製、Broadcom製ハードウェア向け)からのプロプライエタリドライバの導入ができなくなります。
- Ubuntu提供のカーネルについては、アップグレードされますが、メインラインのカーネルは新しいものにアップグレードされることはありません。セキュリティや安定性の問題から、こまめに新しいカーネルのリリースがないか確認し、最新のものに更新していかなくてはなりません。
それをご理解いただいた上で、メインラインのカーネルにアップグレードするには以下を参照下さい。
32-bit版のユーザの場合:
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/linux-headers-2.6.34-020634-generic_2.6.34-020634_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/linux-headers-2.6.34-020634_2.6.34-020634_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/linux-image-2.6.34-020634-generic_2.6.34-020634_i386.deb sudo dpkg -i linux-headers-2.6.34-020634-generic_2.6.34-020634_i386.deb linux-headers-2.6.34-020634_2.6.34-020634_all.deb linux-image-2.6.34-020634-generic_2.6.34-020634_i386.deb
64-bit版のユーザの場合:
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/linux-headers-2.6.34-020634-generic_2.6.34-020634_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/linux-headers-2.6.34-020634_2.6.34-020634_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.34-lucid/linux-image-2.6.34-020634-generic_2.6.34-020634_amd64.deb sudo dpkg -i linux-headers-2.6.34-020634-generic_2.6.34-020634_amd64.deb linux-headers-2.6.34-020634_2.6.34-020634_all.deb linux-image-2.6.34-020634-generic_2.6.34-020634_amd64.deb
ワークアラウンド E: DRIの無効化
下記を/etc/X11/xorg.confに貼り付けて下さい。
Section "Device" Identifier "Configured Video Device" Driver "intel" Option "DRI" "off" EndSection
この設定により3Dアクセラレーションが無効化され、画面描画は遅くなります。しかし、この設定で問題が解決したというユーザもいるようです。
ワークアラウンド F: UXAレンダリングモードの使用
ワークアラウンドAのKMSの有効化が、起動時の問題は解決しても、Xの起動で問題を起こす場合、/etc/default/grubにKMSに関連する設定が無いことを確認して下さい。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
のようになっているはずです。もし、grub関連のファイルを変更した場合は、sudo update-grubを実行して下さい。
その後、下記の"The Solution"節の"Method 2"に沿って計算して下さい。
http://www.ubuntugeek.com/intel-graphics-performance-guide-for-ubuntu-904-jaunty-users.html
その後、その数値でxorg.confを以下のように設定します。
Section "Screen" Identifier "Configured Screen Device" Device "Configured Video Device" EndSection Section "Device" Identifier "Configured Video Device" Option "AccelMethod" "UXA" VideoRam 130560 EndSection
この設定は、以下の環境での問題を解決できることが確認されています。
$ lspci -nn | grep VGA 00:02.0 VGA compatible controller [0300]: Intel Corporation 82852/855GM Integrated Graphics Device [8086:3582] (rev 02)
ワークアラウンド G: KMSの有効化とDRIの無効化
ワークアラウンドAの適用(KMSの有効化)と、ワークアラウンドE(DRIの無効化)を組み合わせます。この設定では、私(訳注: 原文の筆者を指します)の環境では、セッションのロード後数秒でクラッシュしていたKDE環境においてもXのクラッシュを回避できます(ワークアラウンド適用後は数時間は保ちます)。
注意: このワークアラウンドはDRIを無効化し3Dアクセラレーションが無くなるためため、ゲームのパフォーマンスはひどいものになります。テスト環境は下記です。
$ lspci -nn | grep VGA 00:02.0 VGA compatible controller [0300]: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device [8086:2562] (rev 01)
このワークアラウンドの適用により、問題が発生しにくくなったというユーザもいますが、問題が発生しにくくなるだけで、解消したわけではなさそうです。