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

SeedLabs防火墙实验:实现简单内核模块时make编译生成hello.ko失败

编译报错原因

报错日志中明确给出错误原因:ERROR: modpost: missing MODULE_LICENSE() in /home/seed/Downloads/Labsetup/Files/kernel_module/hello.o
Linux 2.4及以上版本的内核强制要求所有内核模块必须声明许可证,否则会在编译的modpost阶段直接终止流程,不会生成最终的.ko内核模块文件,你遇到的就是因为漏加这个必填宏导致的编译失败。

修复步骤
  • 打开内核模块源代码文件hello.c,在所有代码的末尾(module_exit宏定义之后的位置)添加如下代码:
MODULE_LICENSE("GPL");

这行是内核编译的必填项,SeedLabs官方示例代码可能没有标注这个强制要求,手动补上即可。

  • 保存文件后,先执行make clean命令清理之前编译生成的临时文件,避免旧缓存影响后续编译
  • 重新执行make命令,即可正常生成hello.ko内核模块文件
可选补充

你还可以根据需要添加其他非必填的内核模块描述宏:

  • MODULE_AUTHOR("作者名称") 标注模块作者
  • MODULE_DESCRIPTION("模块功能描述") 说明模块的作用
  • MODULE_VERSION("1.0") 标注模块版本号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:54:01