树莓派 - 从仓库升级内核
在无盘设置中,内核升级不是常规升级过程的一部分。为此,可以从最新的发布 tarball 中获取新内核。
然而,如果您需要仓库中可用但尚未包含在发布版本中的更新内核,您可以考虑使用 update-kernel
脚本。但问题是,在树莓派 3 上,1GB 的 RAM 不足以成功运行它。此外,由于只读 modloop 挂载,该脚本在无盘模式下不起作用。不过,有一个解决方法。
- 生成引导文件,包括 sys 模式下的新内核。
- 将引导文件传输到目标无盘模式 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
卷中。