为什么要进行树莓派的源码配置呢?
驱动代码的编译需要一个提前编译好的内核
编译内核就必须配置,配置的最终目标会生成 .config文件,该文件指导Makefile去把有用的东西组织成内核
1.树莓派源码的获取,交叉编译等工具
注意:
-
树莓派里安装的系统镜像版本要和kernel代码对应。因为树莓派系统是在不断开发和升级的,如果你的树莓派使用的是某个时间的系统镜像,那么最好也使用当时的kernel代码。这里我使用得内核版本是4.14.98-v7+,那么我下载的也是4.14版本的代码
-
编译交叉工具的获取
参考博文:https://blog.csdn.net/weixin_48080013/article/details/109755447 -
内核源码的获取
参考博文:https://blog.csdn.net/weixin_48080013/article/details/109905862
2.配置config
linux源码中有很多工程:
树莓派1的工程是bcmrpi_defconfig (早期的树莓派版本)
树莓派2、3的工程是bcm2709_defconfig
2.1第一种方式:使用源码里自带的config
- .厂家配linux内核源码,比如说买了树莓派,树莓派linux内核源码
- cp 厂家.config .config
- 输入指令:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig
指令说明:ARCH=arm是指定ARM架构,CROSS_COMPILE=arm-linux-gnueabihf-是指定编译器,KERNEL=kernel7是树莓派内核,make bcm2709_defconfig是主要核心指令
此命令功能是获取bcm2709_defconfig的配置到 .config里
第二种方式:make menuconfig 一项项配置,通常是基于厂家的config来配置,注意:需要安装ncurse库,下面有介绍)
输入指令:
ARCH=arm CROSS_COMPILE=arm