此博客只为自己记录使用。
官方文档:Linux内核 | Raspberry Pi 树莓派 (官网24年11月更新)
1. 拉取源码
git clone --depth=1 --branch <branch> https://github.com/raspberrypi/linux
将 <branch> 替换为要下载的分支名称
2. 配置
2.1 安装依赖
sudo apt install bc bison flex libssl-dev make libc6-dev libncurses5-dev
2.2编译配置
构建源码和设备树
KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
3. 构建
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs
4. 安装
这里先安装到本机,在打包发送到板子上。
sudo env PATH=$PATH make -j12 ARCH=arm CROSS_COMPILE=/home/rpi/arm-linux-6.3.1/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/home/rpi/kernel_install modules_install
到此安装完成,剩下的打包发送到板子上即可。
4.1 打包modules
- 在/home/ding/kernel_install/lib/modules 目录会有以内核版本命名的目录。将其打包发送到开发板即可。
sudo tar cvf ./4.14.114-v7+.tar.gz ./4.14.114-v7+/
4.2 打包内核镜像
在构建内核源码的目录中。进行打包
cd arch/arm/boot/
tar cvf ./zImage.tar.gz ./zImage
4.3 打包设备树 blobs
cd /home/ding/linux/arch/arm/boot
tar cvf ./dts.tar.gz ./dts/
4.4 将上述三个压缩包发送到开发板中
cd /home/ding/linux/arch/arm/boot
scp ./dts.tar.gz ./zImage.tar.gz pi@192.168.1.101:/home/pi
cd /home/ding/kernel_install/lib/modules
scp ./4.14.114-v7+.tar.gz pi@192.168.1.101:/home/pi
5 在开发板中安装
5.1 安装modules
cd /lib/modules
sudo mv ~/4.14.114-v7+.tar.gz ./
sudo tar xvf ./4.14.114-v7+.tar.gz
5.2 安装内核镜像
cd /boot/
sudo mv ./kernel7.img ./kernel7-backup.img # 备份原有的
cd ~
tar xvf ./zImage.tar.gz
cd /boot/
sudo mv ~/zImage ./
mv ./zImage kernel7.img
5.3 安装设备树
cd ~
tar xvf ./dts.tar.gz
cd /boot
sudo cp ~/dts/*.dtb ./
5.4 安装覆盖层和 README
cd /boot/overlays
sudo cp ~/dts/overlays/*.dtb* ./
sudo cp ~/dts/overlays/README ./
6 重启
sudo reboot
输入 uname -a即可查看升级的内核版本信息
7. 更换启动内核
在/boot/config.txt文件中添加kernel=kernel<xxxx>.img即可选择启动内核。