Radeon R9 Furyグラフィックカード用の専用ドライバをインストールしようとしています。このファイルは fglrx_15.302 などです。AMDドライバ:
リンクされたページの指示を使用してUbuntu Server 14.04.5にインストールしています。
パッケージがまだインストールされていないことを確認したら、次のコマンドを使用してパッケージをビルドしてみました(非常に長いファイル名を入力したくない場合は*を使用します)。
sudo dpkg -i fglrx_15.302* fglrx-core_15.302* fglrx-dev_15.302* \
fglrx-amdcccle_15.302*
ビルド出力には次の行が含まれます。
Error! Bad return status for module build on kernel: 4.4.0-38-generic (x86_64)
Consult /var/lib/dkms/fglrx-core/15.302/build/make.log for more information
ログには、ファイルに2つのエラーが表示されます。firegl_public.c:
error: void value not ignored as it ought to be
len=seq_printf(m, "%d\n", major);
error: 'XSTATE_FP' undeclared (first use in this function)
if (!(fpu->state.xsave.header.xfeatures & XSTATE_FP))
そのため、このファイルのエラーによりビルドが失敗します。
リンクされたページのリリースノートを見ると、私のカーネル(4.4)が推奨範囲(2.6〜3.19)を超えており、私のglibcバージョンが推奨範囲である2.2または2.3を超えた2.19であることがわかります。通常、カーネルとglibcを更新し続けます。しかし、これはカーネルがかなりロールバックされ(Google検索で)ソースからビルドする以外に、14.04にglibc 2.2をインストールする方法を見つけることができませんでした。
私の質問は次のとおりです。すぐに更新する必要がありますか、それとも問題が解決しないと思いますか?それでは、今どうすればいいですか?
ベストアンサー1
ここにあります。結局のところ、AMDのWebサイトから以前のバージョンのドライバ(15.2)をダウンロードして新しくインストールしました。コンパイラがファイルを見つけることができないというエラーが原因で失敗します。i387.h。私のカーネルではファイル名が変更されたからです。api.h、Linuxチームによって別のディレクトリに移動されました(明らかにドライバパッケージがビルドされたためです)。ここで見つけました。
/usr/src/linux-headers-4.40-42-generic/arch/x86/include/asm/fpu/api.h
最初は名前を変更しました。i387.hそしてそれに移動してください/asmディレクトリ、パッケージが期待する場所です。これはエラーを解決しましたが、他の#includeエラーも発生しました。mman.h、poll.hとioctl32.h。最初の2つのファイルもパッケージがビルドされてから移動されましたが、見つかりませんでした。ioctl32.hまったくそうではありません(そして64ビットビルドに必要かどうかわかりません)。
さて、他の2つのヘッダーを移動するかどうかを決定しなくても動作することを確認しようとしています。ioctl32.h、またはパッケージに移動して#includeステートメントを正しい場所に変更します(これは正しいアプローチですが、大きな痛みでもあります)。