1. 下载树莓派镜像
1.1 树莓派官网下载最新版本,下载速度比较慢,
1.2 从国内下载,如“完整版 2020-08-20-raspios-buster-armhf-full 树莓派最新系统镜”, 版本号5.4.51-v7l+
$uname r
5.4.51-v7l+
2. 修改国内镜像源
2.1 ssh连接到树莓派,修改sources.list , 修改第一行为中科大的软件源地址, 其中buster不要写为stretch, 否则会出现解决树莓派apt升级/安装提示依赖问题
$ sudo nano /etc/apt/sources.list
Nano编辑如下图
2.2 修改raspi.list , 修改第一行为中科大的软件源地址
sudo nano /etc/apt/sources.list.d/raspi.list
Nano编辑如下图
3. 下载Linux源码
通过git下载源码,会在当前目录新建linux目录
$ git clone --recursive --depth=1 https://github.com/raspberrypi/linux
如果网络中断,可以重新续传
$ cd linux
$ git submodule update --init --recursiv
4. 添加头文件和构建依赖项
如果2.1中国内镜像源写成stretch, 此时安装libncurses5-dev会出错。
$ sudo apt update
$ sudo apt install raspberrypi-kernel-headers
$ sudo apt install bc libncurses5-dev bison flex libssl-dev make libc6-dev
5. 默认构建配置
Raspberry Pi 4: 请用复制粘贴的方式,这里是的l是L的小写
$ cd linux
$ KERNEL=kernel7l
$ make bcm2711_defconfig
6. Linux源码编译
根据使用的Pi型号,此步骤可能需要很长时间
make -j4 zImage modules dtbs
注意:在Raspberry Pi 2/3/4上,-j4标志在所有四个内核之间分配工作,加快了编译速度。
7. Linux源码编译
安装内核,模块和设备树;(可选)
$ make -j4 zImage modules dtbs
$ sudo make modules_install
$ sudo cp arch/arm/boot/dts/*.dtb /boot/
$ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
$ sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
$ sudo cp arch/arm/boot/zImage /boot/$KERNEL.img
如果需要保留原来的img文件,可以修改最后一条命令为
$ sudo cp arch/arm/boot/zImage /boot/kernel-my.img
修改config.txt,
$ sudo nano /boot/config.txt # 修改启动配置文件
在最后添加一行
kernel=kernel-my.img
8. 重启
通过dmesg命令查看启动信息:
通过uname -r查看内核版本