树莓派 - 从仓库升级内核

来自 Alpine Linux

在无盘设置中,内核升级不是常规升级过程的一部分。为此,可以从最新的发布 tarball 中获取新内核

然而,如果您需要仓库中可用但尚未包含在发布版本中的更新内核,您可以考虑使用 update-kernel 脚本。但问题是,在树莓派 3 上,1GB 的 RAM 不足以成功运行它。此外,由于只读 modloop 挂载,该脚本在无盘模式下不起作用。不过,有一个解决方法。

  1. 生成引导文件,包括 sys 模式下的新内核。
  2. 将引导文件传输到目标无盘模式 microSD 卡。

生成引导文件

准备一张新的 microSD 卡并在其上安装 Alpine Linux。在树莓派上启动它,通过运行 setup-disks 以 sys 模式安装系统并重启。以 root 用户身份登录,然后按如下方式运行 update-kernel。这将需要一段时间。

mkdir /root/tmp mkdir /root/boot TMPDIR=/root/tmp update-kernel -a armhf -f rpi -M /root/boot

启动仓库中可用的最新内核所需的所有文件现在都在 /root/boot 中。

传输引导文件

将所有文件从 /root/boot 复制到目标 microSD 卡的根目录。树莓派应该能够从此卡启动,并且内核现在应该已升级。

添加内核模块和固件

您还可以使用 -p 开关添加模块,后跟软件包名称。例如,如果您想包含 ZFS 内核模块,您可以将上面的 update-kernel 命令行更改为以下内容

TMPDIR=/root/tmp update-kernel -a armhf -f rpi -p zfs-rpi -M /root/boot

这会将指定的模块添加到 modloop 卷中。