linux - SeedLabs 防火墙实验室:实现一个简单的内核模块,构建内核模块失败
问题描述
我正在按照 3.1 任务 1.A:实现简单内核模块: https ://seedsecuritylabs.org/Labs_20.04/Files/Firewall/Firewall.pdf 从这里开始的步骤操作, 直到我运行 make 命令。没有生成 hello.ko 文件,我不知道出了什么问题。
make -C /lib/modules/5.11.0-38-generic/build M=/home/seed/Downloads/Labsetup/Files/kernel_module modules
make[1]: Entering directory '/usr/src/linux-headers-5.11.0-38-generic'
CC [M] /home/seed/Downloads/Labsetup/Files/kernel_module/hello.o
MODPOST /home/seed/Downloads/Labsetup/Files/kernel_module/Module.symvers
ERROR: modpost: missing MODULE_LICENSE() in /home/seed/Downloads/Labsetup/Files/kernel_module/hello.o
make[2]: *** [scripts/Makefile.modpost:124: /home/seed/Downloads/Labsetup/Files/kernel_module/Module.symvers] Error 1
make[2]: *** Deleting file '/home/seed/Downloads/Labsetup/Files/kernel_module/Module.symvers'
make[1]: *** [Makefile:1753: modules] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.11.0-38-generic'
make: *** [Makefile:4: all] Error 2
解决方案
ERROR: modpost: missing MODULE_LICENSE() in /home/seed/Downloads/Labsetup/Files/kernel_module/hello.o
您必须将许可证添加到hello.c
.
例如
MODULE_LICENSE("GPL");
推荐阅读
- sql - PL/SQL 开发人员返回问号而不是特殊字符
- hive - 如何知道 hive 支持的最大 sql 长度?
- pyspark - 迄今为止的火花数据框列字符串
- c++ - 如何使用 C++ 模板魔法来对类型进行模式匹配
- java - 尝试从 sqlite 表中读取 pdf 文件时结果集关闭异常
- reactjs - 如何同时渲染标签导航和堆栈导航
- swift - 如何从firebase读取数据,阻止不起作用?
- ios - 向 Broadcast Swift 4 添加图标和应用程序名称以及 Bundle ID
- python - Python Jira 不能 transition_issue 并抛出异常
- mongodb - Azure Cosmos MongoDB 迁移后无法插入/更新