あれこれ備忘録@はてなブログ

勉強したことやニュースや出来事を備忘録として書いていきます

このブログには広告が含まれます

Linux向けAMD Catalystドライバ ver.14.12の不具合解決法

ずっと困っていました。

LinuxはもともとベータのパッケージをAMDのサイトから落としてビルドするのが普通でした。

去年の12月のアップデートの頃からビルドしたあとインストールに失敗してしまう状態が続いていました。

ビルドせずに既に用意されてあるものをインストールすると表面上うまく行っているようなのでそれで満足していました。

ocl-icd-libopencl1というライブラリをwineが使うことから起こる競合エラーだったようです。

14.10 wine and fglrx conflict

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 tmp

dpkg --control fglrx-core_14.501-0ubuntu1_amd64.deb tmp/DEBIAN

と入力します。

するとtmpディレクトリ以下にdebファイルの中身ができます。

tmp/DEBIAN/control

というファイルをgeditなどのエディタで開いてください。

開いたら

Package: fglrx-core

Source: 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-core

fglrx-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ドライバがアップデートされるたびにこれをやらなくはいけないとなると困りますね。