Linuxマシンに最新のAMDドライバーをインストールしようとしていますが、コンパイルすると、次のメッセージが表示されます。
modprobe:エラー: 'fglrx'を挿入できませんでした:モジュールに不明なシンボルがあるか、不明なパラメーター(dmesgを参照)が失敗しました。
私はBSDネイティブであるため、このLinuxのことはあまり得意ではないことに注意してください。
_kernel-headers
_パッケージをインストールする必要があったため、最初はインストールスクリプトがEULA部分に到達していませんでした。この時点で、実際にインストールを開始できました。
スクリプトを実行するだけでエラーが発生しました:
_/usr/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:634:9: error: void value not ignored as it ought to be
len = seq_printf(m, "%d\n", major);
^
_
いくつかのマイナーなグーグルの後、私は この解決策 を見つけ、手動で実行しました_/usr/lib/modules/fglrx/build_mod/make.sh
_
しかし、コンパイルは次のメッセージで終了しました。
_WARNING: "mtrr_add" [/usr/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
WARNING: "mtrr_del" [/usr/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
_
もちろん、警告を無視することになっているので、コンパイルされたモジュールをインストールするだけに進みました...結果として次のメッセージが表示されました。
modprobe:エラー: 'fglrx'を挿入できませんでした:モジュールに不明なシンボルがあるか、不明なパラメーター(dmesgを参照)が失敗しました。
Dmesgを確認すると、次の行が表示されます。
_[ 2848.332722] fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
[ 2848.332725] Disabling lock debugging due to kernel taint
[ 2848.343063] fglrx: Unknown symbol mtrr_del (err 0)
[ 2848.343114] fglrx: Unknown symbol mtrr_add (err 0)
_
いくつかのグーグルは私をこのメールリストメッセージに導きます: https://patchwork.ozlabs.org/patch/510277/ それがどういうわけか悪いことに基づいてmtrr_add()
の削除に言及します:
Mtrr_add()をアーキテクチャにとらわれないArch_phys_wc_add()に置き換えるための十字軍が完了しました。これにより、MTRRを使用する代わりに書き込み結合の実装(x86のPAT)が確実に利用されるようになります。十字軍が終わったので、ドライバーの直接MTRRアクセスを隠します。
それで、私は今何をすべきですか?
この時点でどのように進めるかわかりませんか? _mtrr_add
_と_mtrr_del
_を使用して関数を探して、ソースを比較する必要がありますか?適用すべきパッチはありますか?それはすべて大きな失敗であり、私はあきらめるべきですか?
おかげで @ DanielB コメント私はそれを動作させました。
だから...私がしなければならなかったのは、古いkernel/xorgバージョンにダウングレードして、それがsticksであることを確認することでした(Arch Linuxは最先端を維持するように設計されていますが)。しかし、それは少しトリッキーでした。linux-4.2.5-1
コンソールで立ち往生していたので、古いパッケージを archive (具体的には:linux-4.2.5-1、linux-headers-4.2.5-1、xorg-server-1.17.4-)から手動でダウンロードしました。 2)。また、古いバージョンの xorg-drivers パッケージグループを入手する必要がありました。これらのパッケージを/var/cache/pacman/pkg/
に配置し、コマンドpacman -U /path/to/package-file.pkg.tar.xz
でダウングレードしました。
次に、Crimsonドライバーを再インストールし、aticonfig --initial
を実行してxorg.confを生成します。
システムアップデートがすべてを偽造するのを防ぐために、/etc/pacman.config
に次の2行を追加しました。
IgnorePkg = linux linux-headers xorg-server
IgnoreGroup = xorg-drivers
これらの行willは、pacman -Syu
...を実行すると警告を生成するため、実際に忘れることはできません。新しいAMDCrimsonドライバーが登場したら、この一時的な機能を一時的に無効にすることができます。
pacman -Syu
を実行して再起動した後、問題が発生しました(再起動時に初期化がスタックしました)。何が起こったのか完全にはわかりませんが、私がしたことは次のとおりです。
Arch-chroot
を実行しますこれで修正されました。さまざまなログを読んで収集したのは、更新後、fglrx
モジュールがカーネルを再び汚染し、Xorgが失敗し、systemd-logindがSDDMに到達できなくなったことです。そして、OSの合理的な部分として、systemdはtits-upすべてをロックしました(キーボードが応答していませんでした)。