填坑源码来源于https://blog.csdn.net/feixiaoxing/article/details/79913476
1.insmod: ERROR: could not insert module char.ko: Operation not permitted
方案:
权限不够 sudo 或者切换到root下执行
2.fatal error: asm/system.h: No such file or directory
方案:
内核版本在3.3之后,直接使用#include <asm/switch_to.h>替换掉原来的#include <asm/system.h>
3.error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
方案:
cd /usr/src/linux-5.2.8/include/linux
vim fs.h
/file_operations
对照函数定义来修改自己的错误定义
其中:unlocked_ioctl就是ioctl的替代者
4.error: function declaration isn’t a prototype [-Werror=strict-prototypes]
方案:没有说明参数是void
改为void chr_exit(void)就可以了