DKMS - Arch Linux 中文维基

跳至內容

# DKMS

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

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

摘自維基百科：

  動態內核模塊支持（DKMS）是用來生成 Linux 的內核模塊的一個框架，這種模塊的原始碼一般不在 Linux 內核原始碼樹中。當新的內核安裝時，DKMS 支持的內核模塊會自動重建。

這意味著你不再需要等待某個公司、項目組或者包維護者釋出新版本的內核模塊。自從 pacman 支持鉤子之後，內核更新時就會自動重新構建模塊。

## 安裝

安裝 dkms包 包和目標內核的頭文件。例如，標準 linux包 內核的頭文件可以用軟體包 linux-headers包 安裝。其他內核也有其相應的頭文件包。

有許多位於內核源碼樹之外的內核模塊都有 DKMS 變體；有一些位於官方軟體倉庫，大多數可以在 AUR 找到。

## 升級

雖然在內核升級時，DKMS 的編譯自動執行，但是依然有可能編譯報錯。所以需要特別注意 pacman 的輸出。當系統需要這些模塊才能啟動，或者使用不在官方軟體倉庫中的內核時，需要額外注意。

若要應用內核中的變化、修復 bug、或是添加特性，請在重啟前先升級 DKMS 包。

## 使用方法

如何手動調用DKMS：

可以通過執行以下命令來使能使用DKMS時的Tab補全：

    # source /usr/share/bash-completion/completions/dkms

### 列出內核模塊

列出當前模塊的狀態，版本，包括源碼樹內的模塊：

    # dkms status

### 重新構建模塊

為當前內核重新構建所有的模塊：

    # dkms autoinstall

或者為指定版本的內核構建：

    # dkms autoinstall -k 3.16.4-1-ARCH

為當前內核構建一個特定的模塊（例如: 對於當前內核）：

    # dkms install -m nvidia -v 334.21

或者簡單地：

    # dkms install nvidia/334.21

### 移除模塊

移除一個內核模塊（舊的內核模塊並不會被自動移除）：

    # dkms remove -m nvidia -v 331.49 --all

或者簡單的：

    # dkms remove nvidia/331.49 --all

如果你卸載了 dkms包 包，那麼以前構建內核模塊使用的相關文件信息就會丟失。如果這樣，去 `/usr/lib/modules/kernel_release` 和 `/var/lib/dkms/package_name` 下刪除不再需要的文件和目錄。

## 創建 DKMS 包

請參見 DKMS 包指南。

## 相關連結

- Linux Journal: 探尋動態內核模塊支持

分類：​

- 內核

DKMS
新增話題