內核模塊打包指南 - Arch Linux 中文维基

跳至內容

# 內核模塊打包指南

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Kernel module package guidelines，最近一次同步於 2022-08-08，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

Arch 打包準則

32 位 – 安全 – CLR – CMake – DKMS – Eclipse – Electron – Free Pascal – GNOME – Go – Haskell – Java – 交叉編譯工具 – KDE – Lisp – Meson – MinGW – 內核模塊 – Node.js – Nonfree – OCaml – Perl – PHP – Python – R – Ruby – Rust – Shell – VCS – Web – Wine – 字體

## 打包分離

包含內核模塊的軟體包應予以特殊對待，以支持希望在系統上安裝多個內核的用戶。

當打包包含內核模塊和其他非模塊支持文件/實用程序的軟體時，將內核模塊與支持文件分開很重要。

### 準則

打包此類軟體時（以 NVIDIA 驅動程序為例），約定為：

- 創建一個 `nvidia` 包，其中只包含為vanilla內核構建的內核模塊
- 創建包含支持文件的 `nvidia-utils` 包
- 確保 `nvidia` 依賴於 `nvidia-utils`（除非有充分的理由不這樣做）
- 對於另一個內核，比如 `linux-mm`，創建 `nvidia-mm` ，其中包含針對該內核構建的內核模塊，該內核提供 `nvidia` ，並且還依賴於 `nvidia-utils`
- 確保 `nvidia` 依賴於當前的主要內核版本，例如：

      depends=('linux' 'nvidia-utils')

### 基本原理

雖然為不同內核構建的內核模塊始終位於不同的目錄中並且可以和平共處，但是支持文件預計會在一個位置找到。如果一個軟體包包含模塊和支持文件，則您將無法為多個內核安裝模塊，因為軟體包中的支持文件將導致 pacman 文件衝突。

模塊和隨附文件的分離允許在同一系統上為多個內核安裝多個內核模塊軟體包，同時在預期位置之間共享支持文件。

## 文件放置

如果軟體包中包含旨在覆蓋現有同名模塊的內核模塊，則應將該模塊放在 `/lib/modules/X.Y.Z-arch1-1/updates` 目錄中。當 depmod 運行時，此目錄中的模塊將優先考慮。

分類：​

- Arch 打包準則
- 內核

內核模塊打包指南
新增話題