You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

内核更新至6.9.4版本后DKMS模块编译失败求助

内核更新至6.9.4版本后DKMS模块编译失败求助

看起来你在升级到Linux 6.9.4内核后,遇到了broadcom-startl8821au两个无线相关DKMS模块的编译失败问题,这两个错误本质都是旧版本驱动不兼容新内核,或者依赖缺失导致的,我来帮你逐一解决:


一、处理broadcom-sta驱动编译失败问题

你的错误日志显示:

ERROR (dkms apport): kernel package linux-headers-6.9.4-060904-generic is not supported
Error! Bad return status for module build on kernel: 6.9.4-060904-generic (x86_64)

可能原因与解决步骤:

  1. 确认内核头文件与当前内核版本完全匹配
    首先验证你的当前内核版本,确保安装了对应的头文件和编译基础依赖:

    # 查看当前运行的内核版本
    uname -r
    # 安装匹配的内核头文件、镜像及编译工具
    sudo apt install linux-headers-$(uname -r) linux-image-$(uname -r) build-essential
    

    如果提示找不到linux-headers-6.9.4-060904-generic包,说明你使用的是主线(mainline)内核,对应的头文件可能需要手动从内核官方渠道下载安装,或者切换到发行版官方维护的稳定内核分支。

  2. 更新broadcom-sta驱动至兼容6.9内核的版本
    你当前使用的broadcom-sta/6.30.223.271版本过于老旧,完全不支持6.9+系列内核。可以按照以下步骤更新:

    # 先移除旧版本的DKMS模块
    sudo dkms remove broadcom-sta/6.30.223.271 --all
    # 安装发行版源中最新的broadcom-sta DKMS驱动
    sudo apt install broadcom-sta-dkms
    

    如果发行版源中的版本仍不兼容,可以寻找适配6.9内核的broadcom-sta源码包,手动通过DKMS安装:

    • 下载适配的源码包并解压
    • 进入解压后的目录,执行:
      sudo dkms add .
      sudo dkms build broadcom-sta/<新驱动版本号>
      sudo dkms install broadcom-sta/<新驱动版本号>
      

二、处理rtl8821au驱动编译失败问题

你的错误日志显示:

ERROR (dkms apport): binary package for rtl8821au: 5.12.5.2 not found
Error! Bad return status for module build on kernel: 6.9.4-060904-generic (x86_64)

可能原因与解决步骤:

rtl8821au/5.12.5.2版本同样陈旧,无法适配6.9内核,需要更新到维护活跃的新版本:

  1. 移除旧版本驱动

    sudo dkms remove rtl8821au/5.12.5.2 --all
    
  2. 安装适配新内核的rtl8821au DKMS驱动
    首先尝试从发行版源安装官方维护的版本:

    sudo apt install rtl8821au-dkms
    

    如果源中没有兼容版本,可以选择一个维护活跃、明确标注支持6.9+内核的rtl8821au驱动源码,通过DKMS手动安装(步骤同broadcom-sta的手动安装流程)。


三、关于内核模块签名的补充说明

日志中出现的kmodsign相关内容是Secure Boot要求的模块签名流程,只要你成功编译出兼容新内核的驱动模块,签名流程会自动完成;如果仍遇到签名错误,可以临时在BIOS/UEFI中关闭Secure Boot,待驱动安装完成后再开启(或重新导入MOK密钥)。


备注:内容来源于stack exchange,提问作者user2036381

火山引擎 最新活动