Ubuntu Linux 10.04 Lucid Lynx カーネル 2.6.32-24-preempt + Radeon 1:6.13.99+git20100722.cd9351b0-0ubuntu0sarvatt~lucid xorg-edgerドライバでCompiz-fusion不具合 その後解決

Ubuntu Linux 10.04 Lucid Lynx カーネル 2.6.32-24-preempt でAMD 690Gチップセットを利用しているが、 Radeon 1:6.13.99+git20100722.cd9351b0-0ubuntu0sarvatt~lucid xorg-edgerドライバにバージョンアップすると、Compiz-fusionで画面描画が更新されなくなる問題が発生している。

マウスカーソルは反応するが、ウィンドウの再描画などが行われずデスクトップが静止画のような状態のままである。仮想デスクトップを移動しているアニメーションの間はデスクトップの再描画が行われているので、ドライバの問題であろう。

まずはLinux カーネルをUbuntu Linux kernel-ppa mainline から 2.6.34.1-maverick_amd64 にアップデートして様子を見る。

するとsyslogに豪快にエラーログを吐きながら起動するが、Compiz-fusionに切り替え自体に失敗したとダイアログに表示される。

しょうがないのでカーネルを元のバージョンに戻して、xorg-edgerドライバがバージョンアップするまで旧バージョンを使用するかCompiz-fusionを使わないかにする。

更新 2010年7月24日

xorg-edgerドライバで大量アップデート。

Radeonドライバは1:6.13.99+git20100723.aca0a866-0ubuntu0sarvatt~lucidとなった。またmesa-glxやmesa-driなどもアップデート対象。

アップデート後再起動したが、Compiz-fusionが使えないままである。何か大きな変化でもあったのだろうか。

更新 2010年7月25日

xorg-edgerのmesa-glx、mesa-driのアップデートが来た。RadeonドライバのCompiz-fusion問題は解消し、正常に動作中。結果としてはlibgl1-mesa-*関連のライブラリの問題だったようだ。早めのアップデートをお薦めする。

Ubuntu Linux 10.04 Lucid Lynx AMD 690G Radeonグラフィクスでカーネルモードドライバを有効化する

Ubuntu Linux 9.10から10.04にバージョンアップした際に自動的にAMD 690G Radeonのカーネルモードドライバが有効にされたが、起動時にフリーズするため無効化していた。

今回カーネルとxorg-edgerドライバのバージョンアップを行なった上でRadeonカーネルモードドライバが動作するか検証した。なおすべてオープンソースドライバで確認したため、プロプライエタリのfglrxドライバは不明である。

カーネルバージョンは2.6.32-23-preempt、xorg-edgerのRadeonドライバは6.13.99+git20100709.06691376-0を利用。マザーボードはいつもの通りAsus M2A-VM。

まずは2箇所設定ファイルを修正する。

$ sudo vi /etc/default/grub

にてテキストエディタでファイルを開き、下記の行の「nomodeset」を削除した。

GRUB_CMDLINE_LINUX_DEFAULT=”splash nomodeset”

修正後にgrubのアップデートを行う。

$ sudo update-grub

次にRadeonドライバの設定。

$ sudo vi /etc/modprobe.d/radeon-kms.conf

にて下記の行を「0」→「1」と書き換えてカーネルモードドライバを有効化する。

options radeon modeset=1

そして再起動する。

再起動時にgrubの表示後VGA 640×480 60Hzのコンソールでブートプロセスログが表示されたあと画面がちらついてUbuntuロゴが1280×1024@75Hzの解像度で表示された。ちゃんと液晶モニタのDDC(Display Data Channel)経由でEDID(Extended Display Identification Data)を読み出し解像度とリフレッシュレートを設定したようだ。

gdmを表示する際に一瞬画面がちらついたが正常に表示され、ログイン後もCompiz-fusionが利用出来た。

正常に動作すると見てよいだろう。

ただ何かの表示で画面全体がちらつくことがごくまれにあった。いつもどおりsyslogを確認すると下記のログが出力されていた。

Jul 12 16:15:48 server kernel: [12440.607917] [drm:edid_is_valid] *ERROR* Raw EDID:
Jul 12 16:15:48 server kernel: [12440.607923] <3>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  …………….
Jul 12 16:15:48 server kernel: [12440.607925] <3>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  …………….
Jul 12 16:15:48 server kernel: [12440.607927] <3>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  …………….
Jul 12 16:15:48 server kernel: [12440.607929] <3>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  …………….
Jul 12 16:15:48 server kernel: [12440.607931] <3>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  …………….
Jul 12 16:15:48 server kernel: [12440.607933] <3>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  …………….
Jul 12 16:15:48 server kernel: [12440.607935] <3>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  …………….
Jul 12 16:15:48 server kernel: [12440.607936] <3>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  …………….
Jul 12 16:15:48 server kernel: [12440.607938]
Jul 12 16:15:48 server kernel: [12440.607941] radeon 0000:01:05.0: HDMI Type A-1: EDID invalid.
Jul 12 16:15:48 server kernel: [12440.607947] [drm:radeon_dvi_detect] *ERROR* HDMI Type A-1: probed a monitor but no|invalid EDID

ログを読むと、「radeonのHDMI Type A-1のEDIDが不正だよ。drm Radeon DVI端子検出時にモニタを確認したところEDIDが無いか不正確だよ。」と書かれている。

現在液晶モニタはVGA D-sub15ピン接続でDVI端子には何も接続していないのでエラー内容の通りである。なので無視しても問題ない。

Ubuntu Linux 10.04 + ASUS M2A-VMマシンが暑さでメモリが熱暴走

ここ最近Ubuntu Linuxマシンが突然フリーズする現象に襲われていた。規則性などは特になく突然である。

syslogを読んでもフリーズ前のログに不審な点はなかった。ただ一度だけフリーズする前にPCI Expressに接続しているデバイス全てでタイムアウトエラーを記録していた。

そこでLinuxカーネルのバージョンを2.6.31-21から2.6.32-23や2.6.35-rc2などいろいろ試したがフリーズ現象は変わらず。CPUかチップセットの熱暴走を疑ってPhenom X4 9750やAMD 690G、SB600に風が行き渡るようPCファンを設置したが現象は変わらず。

最後にDDR2-800MHz 2GB×2、1GB×2のメモリにファンで冷却するとフリーズ現象はピタリと止まった。

暑さでコンピュータが不安定な場合CPUやチップセット、増設ボードのみでなくメモリ冷却も気をつけてみるといいかも。

なおJetway MA3-79GDG COMBO/D + PhenomII X4 955BE@3.7GHz 1.4750v + Radeon HD4850 マシンはGPUボードの排熱がCreative Audigyに伝わり再起動がかかったw

ケース側面のカバーを外すと安定動作。本当に趣味のPCいじりは熱との戦いだ。