树莓派笔记--内核编译
硬件平台: 树莓派4B
内核版本: linux-rpi-4.19
下载地址:
https://github.com/raspberrypi
linux - 内核源代码
tools - 编译需要的工具
firmware - 官方编译好的固件(不需要)
不建议用git命令下载,太慢了,可以用工具下载zip格式,另外,如果从kernel.org官网下载,对于树莓派或多或少的都会有一些小的问题,所以树莓派会在github上对版本进行修改,建议直接在github上下载更新。也可以通过百度网盘下载,提取码:pj8x
编译器说明:
tools/bcm2708目录下一共有5个编译器:
# ls
arm-bcm2708hardfp-linux-gnueabi
arm-rpi-4.9.3-linux-gnueabihf
arm-bcm2708-linux-gnueabi
gcc-linaro-arm-linux-gnueabihf-raspbian
arm-linux-gnueabihf
gcc-linaro-arm-linux-gnueabihf-raspbian-x64
其中x64是64位编译器,arm-bcm2708-linux-gnueabi是指向arm-rpi-4.9.3-linux-gnueabihf的链接,其他有应该是版本不同,都可以用。将编译器路径加入PATH(arm-linux-gnueabihf)。
1. 解压内核源码,生成.config配置文件:
# KERNEL=kernel7l
# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_defconfig
2. 编译:内核/模块/设备树
# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
3.安装内核:
将arch/arm/boot/zImage复制至TF卡boot分区,替换掉原来的kernel7l.img文件即可。
# cp arch/arm/boot/zImage /media/user/boot/${KERNEL}.img
或者修改boot目录下config.txt文件指定
kernel = zImage
注意事项:
这里有个大坑,很多文档说要用工具解压转换一下zImage,实际上不用,转换了反而还不能正常启动了。
4.安装模块:
# make modules_install INSTALL_MOD_PATH=/media/user/rootfs/
5.安装设备树:
# cp arch/arm/boot/dts/bcm2711-rpi-4-b.dtb $/media/user/boot/