Arch Linuxを新しくインストールしました。modprobe
.dllを使用してカーネルモジュールを設定することはできません。たとえば、実行するとsudo modprobe r8169
エラーが発生しますmodprobe: FATAL: Module r8169 not found in directory /lib/modules/4.8.13-1-ARCH
。
コンテンツ/lib/modules
:
$ ls -1 /lib/modules
4.10.8-1-ARCH
extramodules-4.10-ARCH
結果uname -r
:
$ uname -r
4.8.13-1-ARCH
単に一致するようにモジュールディレクトリの名前を変更するのは安全ですかuname -r
?
ベストアンサー1
/lib/modules
インストールされている各カーネルバージョンのサブディレクトリがあります。明らかに、最後の再起動後にカーネルをアップグレードし、4.8.13-1を実行していて4.10.8-1にアップグレードしました。カーネルのアップグレードは、再起動後にのみ適用されます。
モジュールはまったく同じカーネルバージョンにロードされ、同じオプションでコンパイルする必要があります。 (例外もありますが、これを行うにはモジュールを慎重に設計する必要があります。カーネル自体に付属のモジュールは、他のカーネルで動作できるようにするリングを超えていません。)
したがって、まだ実行中のカーネルバージョンを削除しないでください。実行中のカーネルを含むファイルを削除することは有害ではありません。ファイルは起動時にのみ使用されます。ただし、カーネルパッケージを削除すると、モジュールも削除されます。つまり、新しいドライバをロードできません。
実行中のカーネルのバージョンを削除しないもう1つの理由は、インストールした新しいカーネルにバグがある場合は、テスト済みの古いカーネルを使用して起動を続行できることです。明らかに、カーネルはデプロイされる前にテストされますが、ハードウェア関連のバグが原因でカーネルが抜けてしまうことがあります。
自動アップグレードスクリプトを含むディストリビューションは、通常実行中のカーネルを削除しないように注意してください。これがArchでどのように機能するかはわかりませんが、Archは非常に実用的であるため、手動で処理する必要があります。正しいカーネルバージョンを再インストールしてもモジュールをロードできます。