コンテンツにスキップ

「カーネルモジュールパッケージガイドライン」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
 
Kgx (トーク | 投稿記録)
 
(同じ利用者による、間の2版が非表示)
3行目: 3行目:
[[en:Kernel module package guidelines]]
[[en:Kernel module package guidelines]]
[[it:Kernel module package guidelines]]
[[it:Kernel module package guidelines]]
[[pt:Kernel module package guidelines]]
[[zh-hans:Kernel module package guidelines]]
{{Package Guidelines}}
{{Package Guidelines}}


11行目: 13行目:


=== ガイドライン ===
=== ガイドライン ===

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


17行目: 20行目:
* {{Ic|nvidia}} が {{Ic|nvidia-utils}} に依存するように設定 (何か理由があれば設定しなくてもかまいません)。
* {{Ic|nvidia}} が {{Ic|nvidia-utils}} に依存するように設定 (何か理由があれば設定しなくてもかまいません)。
* {{Ic|kernel26-mm}} など他のカーネル用のモジュールの場合、そのカーネルに対応するカーネルモジュールが含まれた {{Ic|nvidia-mm}} を作成して、同じように {{Ic|nvidia-utils}} に依存させます。
* {{Ic|kernel26-mm}} など他のカーネル用のモジュールの場合、そのカーネルに対応するカーネルモジュールが含まれた {{Ic|nvidia-mm}} を作成して、同じように {{Ic|nvidia-utils}} に依存させます。
* {{Ic|nvidia}} は最新のカーネルバージョンに依存ようにしてください。例:
* {{Ic|nvidia}} カーネルに依存していことを確認してください。例: {{bc|1=depends=('linux' 'nvidia-utils')}}
depends=('kernel26>=2.6.24-2' 'kernel26<2.6.25-0' 'nvidia-utils')
上記の例で {{Ic|2.6.24-1}} ではなく {{Ic|2.6.24-2}} となっているのは、カーネルのサブシステムに重要な変更があったために、全てのモジュールを再ビルドする必要があるからです。そのような場合では depends のバージョンを変更しないと、古いバージョンのカーネルを使っているユーザーからモジュールが壊れていると報告を受ける可能性があります。


=== 原則 ===
=== 原則 ===
27行目: 28行目:


== ファイルの配置場所 ==
== ファイルの配置場所 ==

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

2023年6月28日 (水) 22:31時点における最新版

パッケージの分離

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

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

ガイドライン

カーネルモジュールが含まれているソフトウェア (例えば 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 を実行すると、このディレクトリのモジュールが優先されます。