树莓派Raspberry PI 编译内核模块(KO)文件

这里需要注意一下,官方的镜像,分为2019-09-26-raspbian-buster,2019-09-26-raspbian-buster-full,2019-09-26-raspbian-buster-lite这三个版本。笔者先用的是lite版本的,但是一直不成功,驱动编译不了,会一直报错,详细如下说明。使用2019-09-26-raspbian-buster-full版本的镜像,能够顺利的编译过去。个人猜想可能是lite精简版的有些库之类的没有,所以编译不过,full版本的相应的软件功能比较全面。如果有那个老铁知道是什么原因的,欢迎告知。


使用的官方的lite版本的镜像,需要下一步操作。

1.用以获取相对应的源代码

sudo apt-get update

sudo apt-get install raspberrypi-kernel-headers

 

pi@raspberrypi:/usr/src/$ls

linux-headers-4.19.75+  linux-headers-4.19.75-v7+  linux-headers-4.19.75-v7l+  linux-headers-4.19.75-v8+

2.测试环境是否OK

makefile文件:

树莓派Raspberry PI 编译内核模块(KO)文件_第1张图片

将内核路径换成:/usr/src/linux-headers-4.19.75 +

将内核路径换成:/usr/src/linux-headers-4.19.75-v8+

./include/uapi/asm-generic/int-ll64.h:12:10: fatal error: asm/bitsperlong.h: No such file or directory

./arch/arm/include/uapi/asm/unistd.h:24:10: fatal error: asm-generic/unistd-oabi.h: No such file or directory

 #include

将内核路径换成:/usr/src/linux-headers-4.19.75-v7+

将内核路径换成:/usr/src/linux-headers-4.19.75-v7l+


 换成full版本的官方镜像,内核模块可以正常编译。

 

如果出现在insmod的时候:

可以先通过uname  -a查看版本信息。然后在Makefile文件中将内核的路劲选为相应的内核。

在Makefile中也要选择相对应的内核版本: 

树莓派Raspberry PI 编译内核模块(KO)文件_第2张图片

 note:

raspberry pi2b and pi3: v7+

raspberry pi4b: v7l+


 

参考:

https://blog.csdn.net/u011031257/article/details/80841957

 

你可能感兴趣的:(树莓派,linux驱动,Makefile)