You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04安装gasket-dkms报错:Cannot create report的解决方法

解决gasket-dkms安装时class_create编译错误的问题

问题原因

Linux内核5.15及以上版本中,class_create()函数接口发生变更——移除了第一个struct module *owner参数,但你使用的gasket-dkms包仍采用旧接口编写,导致编译时出现参数类型不兼容、参数过多的错误,进而引发安装失败及crash文件冲突。

解决步骤

1. 彻底清理旧残留文件

先完全移除旧的gasket-dkms相关文件,避免残留影响重装:

sudo dkms remove gasket/1.0 --all
sudo rm -rf /var/lib/dkms/gasket
sudo rm -rf /var/crash/gasket-dkms.0.crash
sudo apt purge gasket-dkms
sudo apt autoremove && sudo apt clean

2. 修改gasket_core.c代码适配新内核

重新触发INSTALL.sh的安装流程,当脚本开始编译gasket-dkms出现错误后,修改内核驱动代码:

  • 打开编译目录下的源码文件:
    sudo nano /var/lib/dkms/gasket/1.0/build/gasket_core.c
    
  • 找到class_create的调用行,类似:
    gasket_class = class_create(THIS_MODULE, "gasket");
    
  • 替换为带版本判断的兼容写法:
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
    gasket_class = class_create("gasket");
    #else
    gasket_class = class_create(THIS_MODULE, "gasket");
    #endif
    
  • 保存退出(Ctrl+O,回车,Ctrl+X)

3. 手动编译安装dkms模块

回到编译目录完成编译安装:

cd /var/lib/dkms/gasket/1.0/build
make
sudo make install
sudo modprobe gasket

4. 长期解决方案

如果你的INSTALL.sh是自动下载旧版gasket-dkms包,建议:

  • 替换脚本中的驱动包下载链接为Coral官方适配新内核的版本
  • 或者将修改后的gasket源码打包成自定义dkms包,替换脚本中的安装包路径

内容的提问来源于stack exchange,提问作者vijay s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 07:16:01