- 严格参考下文的官网方式
参考网站
- 编译内核官方参考
- 实时内核官方参考
编译指令
- 在树莓派github连接下载内核压缩包
- 解压到
/usr/src目录下 - 切换超级用户
sudo passwd root设置密码 sudo su切换到超级用户apt install git bc bison flex libssl-dev libncurses-dev make安装必要的包- 执行
KERNEL=<你的内核名字>和sudo make bcm2712_defconfig- 注意设置完环境变量之后就不能切换用户了
- 使用
make menuconfig修改内核选项 - 修改
.config中的CONFIG_LOCALVERSION选项为自己希望的自定义内核后缀名- 注意,上述内容在
make menuconfig后会被覆盖,因此要在上一步之后进行
- 注意,上述内容在
make -j4 Image.gz modules dtbs编译内核make modules_install这一步是备份,名字不冲突可以不执行
sudo cp /boot/firmware/$KERNEL.img /boot/firmware/$KERNEL-backup.img
安装内核
sudo cp arch/arm64/boot/Image.gz /boot/firmware/$KERNEL.img
sudo cp arch/arm64/boot/dts/broadcom/*.dtb /boot/firmware/
sudo cp arch/arm64/boot/dts/overlays/*.dtb* /boot/firmware/overlays/
sudo cp arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/- 然后使用
sudo vim /boot/firmware/config.txt - 最后添加一句
kernel=<你的内核名字>.img - reboot重启
- 最终成功切换到自己定义的内核
实时内核
- 完全按照官网的指示来
- 去rt patch找包的时候找符合自己大版本的即可,小版本也相同的可能不好找
- 注意有时候patch中可能会出现
fail的情况,不全是成功,但是不影响编译 - 结果
- 测试CAN的驱动不受影响