
ドライバーがカーネルにコンパイルされていることは理解していますが、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月カーネルの変更時に自動的に実行され、ドライバーを再構築するスクリプトを含むパッケージを作成して、その必要がないようにすることは可能ですが、使用している特定のドライバーではそれが実行されていないようです。
これは珍しいことではありません。すべてのオペレーティング システムとビデオ ドライバーの組み合わせに対してインストール/アップグレード スクリプトを作成し、テストするのは面倒だからです。