2025年2月28日
如何在 Linux 上使用 DKMS 构建内核模块
假设您想要为您购买的新显卡、WiFi 适配器或网络接口卡安装设备驱动程序,并且出于某种原因(例如,缺少预构建驱动程序、过时的驱动程序版本、非通用构建选项),您决定从源代码编译并安装驱动程序模块。因此,您继续下载设备驱动程序的官方源代码,针对内核对其进行编译,安装并激活它。新硬件已成功识别,一切正常。现在考虑一下如果稍后升级到较新的内核,驱动程序会发生什么情况。该驱动程序是在库存内核源代码树之外构建的,因此一旦您的系统升级到较新的内核,您构建的驱动程序将无法正常工作。如何解决这个问题呢?那么,您需要针对较新的内核重新编译驱动程序并重新安装它。显然,如果每次升级内核时都必须手动重新构建驱动程序,这会变得相当麻烦。这就是动态内核模块支持(DKMS)派上用场的时候。 DKMS 框架使…