DebianはなぜLinuxヘッダファイルを2つの異なる場所にインストールするのですか?

DebianはなぜLinuxヘッダファイルを2つの異なる場所にインストールするのですか?

Debian には 2 つのヘッダパッケージがあります。 1 つはアーキテクチャに依存し、もう 1 つはアーキテクチャに依存しません。それらはヘッダーをインストールする/usr/src/$LINUX/commonので、/usr/src/$LINUX/$ARCH2つのディレクトリ(buildとsource)がインストールされます/lib/modules。これはdkmsに多くの問題を引き起こす可能性があります。

このタスクを実行し、一般的なタスクを実行しない妥当な理由はありますか?

答え1

コメントを言うには長すぎますが、実際には答えではありません。

以下を投稿すると、不明な問題を明確にするのに役立ちます。

inxi -Fxz

これは設定で発生する可能性のある問題を表示するのに役立ちます。

今数時間:

  1. dkmsは星ではなく、モジュールやビルドスクリプトなどのコレクションです。どのモジュールが失敗するかを指定する必要があります。これは dkms の失敗ではなく、現在 Debian カーネルでうまく動作するモジュールです。特定の dkms モジュールが失敗するという事実は、標準の Debian パッケージングが期待どおりに動作し動作する理由ではなく、失敗した理由を見つける必要があることを意味します。 Dkmsは失敗しません。失敗するのはモジュールです。ほぼ100%確実です。

  2. 任意のモジュールをサポートするのは Debian カーネルの仕事ではないので、どのモジュールが失敗するかを非常に具体的に説明する必要があります。モジュールと対応する dkm が正しくコーディングされ、カーネルをサポートする限り、標準の Debian 方式のヘッダーパッケージングを使用する dkm には一般的な問題はありません。正常に動作します。

  3. どの Debian ブランチを使用しているかは言及していませんが、これは重要です。安定した?次の屋台、別名「破壊者」は不安定ですか?

  4. アーキテクチャに対応する linux-headers パッケージをインストールし、パブリックパッケージを依存関係としてインポートします。共通は共通を意味します。つまり、パブリックパッケージは、時々例外を除いて、さまざまなアーキテクチャで同じです。

例:

apt-cache search linux-headers
...
linux-headers-5.10.0-6-686 - Header files for Linux 5.10.0-6-686
linux-headers-5.10.0-6-686-pae - Header files for Linux 5.10.0-6-686-pae
linux-headers-5.10.0-6-amd64 - Header files for Linux 5.10.0-6-amd64
linux-headers-5.10.0-6-cloud-amd64 - Header files for Linux 5.10.0-6-cloud-amd64
linux-headers-5.10.0-6-common - Common header files for Linux 5.10.0-6
linux-headers-5.10.0-6-common-rt - Common header files for Linux 5.10.0-6-rt
linux-headers-5.10.0-6-rt-686-pae - Header files for Linux 5.10.0-6-rt-686-pae
linux-headers-5.10.0-6-rt-amd64 - Header files for Linux 5.10.0-6-rt-amd64
...

例外として、rtカーネルには独自の共通ファイルがありますが、そうでない場合は共通ファイルが共有されます。 Debian は常にこのようなことをします。これを良いパッケージングといいます。 Debianが良いパッケージングを提供するという事実は、バグや問題ではなく、dkmsモジュールのバグや問題を明らかにするだけです。

関連情報