树莓派4B编译以及烧录kernel的步骤记录

https://www.raspberrypi.com/documentation/computers/linux_kernel.html#using-menuconfig

1、在树莓派4B机器上下载Linux源码(树莓派的分支)以及编译,安装

(1)、安装相关的准备工具,git和编译依赖工具:

sudo apt install git bc bison flex libssl-dev make

(2)、git clone代码( Omitting the --depth=1 will download the entire repository, including the full history of all branches, but this takes much longer and occupies much more storage.)

git clone --depth=1 https://github.com/raspberrypi/linux

(3)、内核配置 (用的是Pi 4B)

 [1]、32位系统

cd linux
KERNEL=kernel7l
make bcm2711_defconfig

[2]、64位系统

cd linux
KERNEL=kernel8
make bcm2711_defconfig

(4)、编译kernel,以及烧录kernel镜像到本机树莓派上

[1]、32位系统编译

make -j4 zImage modules dtbs
sudo make modules_install
# Choose one of the following based on the kernel version
  # For kernels up to 6.4:
  sudo cp arch/arm/boot/dts/*.dtb /boot/firmware/
  # For kernel 6.5 and above:
  sudo cp arch/arm/boot/dts/broadcom/*.dtb /boot/firmware/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/firmware/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/firmware/overlays/
sudo cp arch/arm/boot/zImage /boot/firmware/$KERNEL.img

[2]、64位系统编译

make -j4 Image.gz modules dtbs
sudo make modules_install
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 cp arch/arm64/boot/Image.gz /boot/firmware/$KERNEL.img

2、在笔记本电脑上的Ubuntu上交叉编译Linux内核并烧录到树莓派设备上

(1)、安装依赖的工具

sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev

[1]、安装32位Linux编译工具链

sudo apt install crossbuild-essential-armhf

[2]、安装64位Linux编译工具链

sudo apt install crossbuild-essential-arm64

(2)、获取kernel源码

git clone --depth=1 https://github.com/raspberrypi/linux

(3)、内核配置(Pi 4B)

[1]、32位编译

cd linux
KERNEL=kernel7l
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_defconfig

[2]、64位编译

cd linux
KERNEL=kernel8
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig

(4)、编译kernel

[1]、编译32位系统

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

[2]、编译64位系统

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs

(5)将编译好的镜像烧录到树莓派的SD卡中

[1]、插入SD卡到电脑上(以及建好了分区),挂载对应的2个分区

mkdir mnt
mkdir mnt/fat32
mkdir mnt/ext4
sudo mount /dev/sdb1 mnt/fat32
sudo mount /dev/sdb2 mnt/ext4

[2]、安装内核模块 (kernel modules)到SD卡中

{1}、32位kernel 模块

sudo env PATH=$PATH make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install

{1}、64位kernel 模块

sudo env PATH=$PATH make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=mnt/ext4 modules_install

[3]、拷贝kernel和设备树到SD卡

{1}、32位系统

sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img
sudo cp arch/arm/boot/zImage mnt/fat32/$KERNEL.img
# Choose one of the following based on the kernel version
  # For kernels up to 6.4:
  sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/
  # For kernel 6.5 and above:
  sudo cp arch/arm/boot/dts/broadcom/*.dtb mnt/fat32/
sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/
sudo umount mnt/fat32
sudo umount mnt/ext4

{2}、64位系统

sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img
sudo cp arch/arm64/boot/Image mnt/fat32/$KERNEL.img
sudo cp arch/arm64/boot/dts/broadcom/*.dtb mnt/fat32/
sudo cp arch/arm64/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
sudo cp arch/arm64/boot/dts/overlays/README mnt/fat32/overlays/
sudo umount mnt/fat32
sudo umount mnt/ext4

可以修改拷贝到SD卡的kernel镜像的名字:

sudo cp arch/arm64/boot/Image mnt/fat32/kernel-myconfig.img

同时需要修改config.txt文件里面的参数:

kernel=kernel-myconfig.img

最后,将SD卡保存,插入树莓派设备重新启动即可。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值