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端子には何も接続していないのでエラー内容の通りである。なので無視しても問題ない。