一、下载linux内核源码
git clone --depth=1 https://github.com/raspberrypi/linux
二、在本地编译linux内核
2.1、安装 Git 和构建依赖项
sudo apt install git bc bison flex libssl-dev make
2.2、配置内核
进入linux所在目录下
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2712_defconfig
2.3、编译linux内核
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2712_defconfig
三、安装内核
在插入SD卡之后通过命令lsblk
来识别SD卡,并收到以下相应
sdb
sdb1
sdb2
其中sdb1是FAT(boot)分区,sdb2是ext4文件系统(root)分区。 首先挂载这两个分区,并调整分区号:
mkdir mnt
mkdir mnt/fat32
mkdir mnt/ext4
sudo mount /dev/sdb1 mnt/fat32
sudo mount /dev/sdb2 mnt/ext4
3.1、将linux内核模块安装到 SD 卡上
udo env PATH=$PATH make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=mnt/ext4 modules_install
3.2、将设备树安装到 SD 卡上
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