Linux向けAMD Catalystドライバ ver.14.12の不具合解決法
ずっと困っていました。
LinuxはもともとベータのパッケージをAMDのサイトから落としてビルドするのが普通でした。
去年の12月のアップデートの頃からビルドしたあとインストールに失敗してしまう状態が続いていました。
ビルドせずに既に用意されてあるものをインストールすると表面上うまく行っているようなのでそれで満足していました。
ocl-icd-libopencl1というライブラリをwineが使うことから起こる競合エラーだったようです。
wine and fglrx packages are mutually exclusive
解決法はfglrxを消した状態でwineインストールしなおして(ということはwineも消すということ?)以下の方法でパッケージを書き換えることだそうです。
Ubuntu14.04 64bitがインストールされているマシンの話として聞いてください。
http://support.amd.com/ja-jp/download/desktop?os=Linux%20x86_64
からダウンロードした実行形式のファイルから自分のPCに合わせたパッケージをビルドするか、
http://support.amd.com/ja-jp/download/desktop?os=Ubuntu%20x86%2064
で上から4つのdebファイルをダウンロードしておきます。
実行形式のファイル(binファイル)からパッケージを作る場合はroot権限でないと作れない場合があるのでその場合は以下のコマンドの最初にsudoコマンドが必要になるかも知れません。
そのうち
fglrx-core_14.501-0ubuntu1_amd64.deb
か
fglrx-core_14.501-0ubuntu1_amd64_UB_14.01.deb
というファイルがあると思うのでそれを解凍します。
まず、作業ディレクトリを作ります。
debファイルがある場所にtmpというディレクトリを作ってください。
mkdir tmp
コマンドで作る必要はないので適当なファイラーで作ってください。
そして、このあとはdebファイルがある場所でターミナルを開くかターミナルを開いてdebファイルがある場所へ移動して
dpkg -x fglrx-core_14.501-0ubuntu1_amd64.deb tmpdpkg --control fglrx-core_14.501-0ubuntu1_amd64.deb tmp/DEBIAN
と入力します。
するとtmpディレクトリ以下にdebファイルの中身ができます。
tmp/DEBIAN/control
というファイルをgeditなどのエディタで開いてください。
開いたら
Package: fglrx-coreSource: fglrx-installer
Version: 2:14.501-0ubuntu1
Architecture: amd64
Maintainer: Ubuntu Core Developers
Installed-Size: 184795
Depends: libc6 (>= 2.3.4), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1), lib32gcc1, libc6-i386, dkms, make, linux-libc-dev
Conflicts: fglrx-driver-core, libopencl1
Replaces: fglrx-driver-core, libopencl1
Provides: fglrx-driver-core, libopencl1
Section: restricted/misc
Priority: extra
Homepage: http://support.amd.com
Description: Minimal video driver for the AMD graphics accelerators
Minimal video driver for the AMD Radeon and FireGL graphics accelerators.
.
This package provides 2D display drivers.
以上のようになっているので、ここからConflictsとProvidesにあるlibopencl1を削除します。その前のカンマも消します。
終わったら上書き保存してください。
geditの場合、上書き保存すると前の状態がバックアップとしてcontrol~ファイルとなって残ります。
消したほうがベターなんでしょうが、消さなくてもできたのでそのままでもいいでしょう。
そして
dpkg -b tmp fglrx-core-fixed.deb
という感じでdebファイルを作ります。
fglrxを消してwineを入れなおしてからこれを行う場合はこのあとはスムーズにいつもと同じような手順でインストールできると思います。
ファイラーからダブルクリックでもインストールできますし、dpkgコマンドでインストールすることもできます。
しかし、私は既に色々いじりすぎて綺麗に消すことができなくなっていたので出来上がったものを強制的にインストールすることにしました。
出来たものを含めてAMDのドライバパッケージは4つあります。
バージョン名以下を無視すると
fglrx-corefglrx-amdcccle
fglrx
fglrx-dev
です。
fglrx-coreは勿論作りなおしたfixedがついたファイルです。
上に書いた順番にインストールするのですが、fglrx-coreが
dpkg: error processing archive fglrx-core-fixed.deb (--install):'/etc/acpi/events/fglrx-ac-aticonfig' を上書きしようとしています。これはパッケージ fglrx 2:13.350.1-0ubuntu2 にも存在します
と出てインストールできません。
その場合は
sudo dpkg -i --force-overwrite fglrx-core-fixed.deb
とするとインストールできるようです。
その他のエラーが出て駄目な場合は
sudo dpkg -i --force-all fglrx-core-fixed.deb
を試してみるといいみたいです。
とにかく、インストールは出来たのであとはこのあと不具合が起きずにうまく動くかしばらくテストしたいと思います。
この14.12のアップデートでGenymotionもエラーで動かなくなってしまってとても困っています。
直っていればいいのですが。
追記
やっぱり直ってませんでした。
結局、apt-get -f installでfglrx関係全部削除されてしまいます。
仕方がないので、上のリンクに書かれてあるとおり、fglrxがない状態でwineを一旦消して再度インストールし、その上でここに書いた作業をやり直しました。
しかし、これで直ったんでしょうか?
今のところ、エラーらしいものはないです。
Genymotionは動くようになりました!
これで何事もないといいのですが。ただ、AMDドライバがアップデートされるたびにこれをやらなくはいけないとなると困りますね。