カーネルモジュールパッケージガイドライン

提供: ArchWiki
2023年6月28日 (水) 22:31時点におけるKgx (トーク | 投稿記録)による版 (→‎ファイルの配置場所: 情報を更新)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

パッケージの分離

システム上に複数のカーネルをインストールしたいというユーザーのために、カーネルモジュールを含むパッケージには特別な扱いが必要です。

カーネルモジュールと他の補助ファイル・ユーティリティが含まれているソフトウェアをパッケージ化するときは、補助ファイルとカーネルモジュールを分離してください。

ガイドライン

カーネルモジュールが含まれているソフトウェア (例えば NVIDIA ドライバー) をパッケージにするときは:

  • 標準カーネルのカーネルモジュールだけが含まれる nvidia パッケージを作成。
  • 補助ファイルが含まれる nvidia-utils パッケージを作成。
  • nvidianvidia-utils に依存するように設定 (何か理由があれば設定しなくてもかまいません)。
  • kernel26-mm など他のカーネル用のモジュールの場合、そのカーネルに対応するカーネルモジュールが含まれた nvidia-mm を作成して、同じように nvidia-utils に依存させます。
  • nvidia がカーネルに依存していることを確認してください。例:
    depends=('linux' 'nvidia-utils')

原則

別のカーネル向けにビルドされたカーネルモジュールを別のディレクトリに保存することでカーネルモジュールを共存させることができ、補助ファイルはひとつの場所にまとめることができます。モジュールと補助ファイルの両方がパッケージに含まれている場合、パッケージの補助ファイルが衝突してしまうため pacman でモジュールをインストールできなくなってしまいます。

モジュールと他のファイルを分離することで同一マシン上に複数のカーネルが存在する場合でも複数のカーネルモジュールパッケージをインストールして補助ファイルを共有することが可能になります。

ファイルの配置場所

パッケージが既存の同名のモジュールを上書きするようなカーネルモジュールを含んでいる場合、そのようなモジュールは /lib/modules/X.Y.Z-arch1-1/updates ディレクトリに配置して下さい。 depmod を実行すると、このディレクトリのモジュールが優先されます。