8. 升级包

为了保证系统的稳定运行,我们会定期发布内核的升级包, 我们可以在百度云或者git仓库里下载我们的内核升级包, 升级包的更新内容会记录到更新记录文件内, 有需要可以根据更新内容更新自己的系统。

升级包升级只会替换与内核相关的文件,对于保存在非内核相关的文件夹, 是不会进行修改的,因此,可以在我们运行的系统中安装升级包,安装完重启即可升级,我们的文件也不会消失。

8.1. 自动升级

我们会将升级包同步放到野火的网站上,我们可以直接使用以下命令升级。

8.1.1. 注意事项

  • 更新内核包后,uEnv.txt文件会恢复成原始状态,需要再次配置

  • 如果不想要使用 sudo apt upgrade 更新内核可以进行以下操作

1
2
#关闭内核自动更新
sudo apt-mark hold linux-image-6.1.99-rk3576 linux-headers-6.1.99-rk3576

如果想要解除上面的操作,可以

1
2
#打开内核自动更新
sudo apt-mark unhold linux-image-6.1.99-rk3576 linux-headers-6.1.99-rk3576

注解

默认为关闭自动更新,即不能通过upgrade更新内核。

8.1.2. 手动更新

1
2
3
4
5
#先更新软件源
sudo apt update

#搜索软件源里的内核镜像包
sudo apt search 6.1.99
  • 可以看到我们的软件源里有linux内核的更新包

1
2
3
4
5
#安装正常内核
sudo apt install linux-headers-6.1.99-rk3576 linux-image-6.1.99-rk3576

#安装完成,重启即可
sudo reboot

8.2. 手动安装升级包

如果是自己编译内核,可以通过在sdk上编译出来的deb包自行安装

通过文件传输的方式,传输到板卡上。

升级包一共有4个,但只需安装其中2个,不同版本的升级包名字会不一样,如下所示

1
2
3
4
5
6
7
8
9
#内核deb包传到板卡
cat@lubancat:~$ ls *.deb
linux-headers-6.1.99-rk3576_6.1.99-rk3576-1_arm64.deb linux-image-6.1.99-rk3576_6.1.99-rk3576-1_arm64.deb

#安装方法
sudo dpkg -i *.deb

#安装后重启即可
sudo reboot

8.3. 升级包分析

  • linux-headers-6.1.99-rk3576_6.1.99-rk3576-1_arm64.deb

该包为内核的源代码,安装后,会把内核的源代码复制到/usr/src/linux-headers-6.1.99-rk3576中。

  • linux-image-6.1.99-rk3576_6.1.99-rk3576-1_arm64.deb

该包包含了内核,驱动,设备树相关,升级脚本

  • linux-libc-dev_6.1.99-rk3576-1_arm64.deb

该包为libc的一些头文件(可不安装)

  • linux-image-6.1.99-rk3576-dbg_6.1.99-rk3576-1_arm64.deb

该包为内核debug所要用到的内核以及驱动,主要用于系统出错和崩溃时,debug使用(可不安装)

这里只是简单的描述了各种升级包的作用,具体关于包的分析就依靠读者去探索,这里提供读取deb包命令。

1
sudo dpkg-deb -c xxx.deb