1、简介
因为树莓派官方系统为了支持前几代树莓派的硬件,所以树莓派官方系统都是相对比较老,为了更好的利用最新的硬件架构,就想着手动升级系统。
2、方法
1、直接在树莓派主机上编译,然后修改开机启动配置文件,换成新编译的系统。
2、 交叉编译,在其他的Linux系统上编译出树莓派系统的镜像,然后就和第一次刷进树莓派系统一样。
3、命令直接升级。
3、notes
1、树莓派系统GitHub,官网,有内核、固件、工具、文档、等等github链接
,一般内核更新较快,固件支持更新较慢,木桶效应选择能升级到的版本,比如说当前内核5.9,固件只支持到5.4,固件中的启动程序bootcode.bin文件(类似常规系统的BIOS启动程序)不能启动更高版本的内核,所以即使内核编译成最新的版本,也启动不了,如果自己能升级固件支撑内核。就当我前边在扯犊子吧。
4、内核升级大概步骤
1、下载相关的工具链
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
2、配置文件.config
解压源码进解压之后的目录
在此目录下设置.config文件
* 1、可以直接拷贝原来系统的配置文件,
* 2、可以make menuconfig 手动配置
* 弹出来的配置界面,可以按下y,把相关选项编入内核模块,可选的字母有y、m、n,然后save退出就好了
* menuconfig、config、xconfig,都是不同的配置方式,目的一样都是完成make编译之前的配置工作,menuconfig相对好用。
* 3、二者结合
树莓派有很多的配置文件。在内核解压的目录下(比如说是:/…/linux/目录)
pi@raspberrypi:~/src/linux-rpi-5.4.y/arch/arm64/configs $ ls
bcm2711_defconfig bcmrpi3_defconfig defconfig
3、编译make
需要编译出来3个东西
新内核kernel,动态加载到内核的模块,还有一些dtbs
有的是直接把zImage更换名字,有的是用tools工具生成kernel_X_.img
4、更换指定启动的内核
在config.txt文件中指定新编译的内核
5、更新启动驱动
把固件fireware/boot/目录下的bootcode.bin、fixup.dat、start.elf等相关文件拷贝到/boot目录下,来启动新内核,(升官发财了,自然要增加一些丫鬟)