カーネルの更新時にビデオ ドライバーを再インストールする必要があるのはなぜですか?

カーネルの更新時にビデオ ドライバーを再インストールする必要があるのはなぜですか?

ドライバーがカーネルにコンパイルされていることは理解していますが、API がカーネルに密接に結合されているのはなぜですか?

更新があるたびにドライバーを再インストールしなくても済むような方法でドライバーをインストールできますか?

ドライバーを再度使用してコンパイルできるということは、ドライバーが有効であることを意味します。では、なぜこれを手動で行う必要があるのでしょうか?

リンク私が使用するドライバー

AMD Catalyst™ 13.1 独自の Linux x86 ディスプレイ ドライバー

AMD Radeon HD 7700 シリーズ

現在実行中

Linux 3.5.0-25-generic #39-Ubuntu SMP  x86_64 x86_64 x86_64 GNU/Linux

答え1

メイン カーネル ツリーの一部ではないドライバー (もちろん、プロプライエタリ ドライバーも含まれます) は、内部カーネル インターフェイスが変更されている可能性があるため、新しいカーネル バージョン用に再構築する必要があります。ドライバーはカーネル空間で実行され、内部カーネル インターフェイスを使用するため、カーネルと密に結合されています。アプリケーションは別の話で、ユーザーランドからカーネルへのインターフェイスである syscall インターフェイスを使用します。このインターフェイスは非常に安定しています。

グレッグ・クロア・ハートマンはこのテーマについて素晴らしい記事を投稿しました。ここ

答え2

個人的な経験に基づくと、新しいカーネルはドライバー/モジュールの完全に新しいディレクトリをドロップし、古いディレクトリから新しいディレクトリにコピーできるドライバー/モジュールを判断しようとしません。

古いドライバー/モジュールを新しいディレクトリにコピーすることはできるかもしれませんが、ドライバーのカーネル バージョン間の互換性を自動的に判断する良い方法は (私の知る限り) ありません。

私はそう思う5月カーネルの変更時に自動的に実行され、ドライバーを再構築するスクリプトを含むパッケージを作成して、その必要がないようにすることは可能ですが、使用している特定のドライバーではそれが実行されていないようです。

これは珍しいことではありません。すべてのオペレーティング システムとビデオ ドライバーの組み合わせに対してインストール/アップグレード スクリプトを作成し、テストするのは面倒だからです。

関連情報