逐步介绍如何在Raspberry Pi或任何嵌入式板上使用swupdate进行系统更新

问题描述 投票:1回答:1

Stackoverflow社区。我正在尝试设计OTA更新系统,并想使用swupdate进行树莓派更新。我发现关于如何实现该功能的信息非常有限。如果有人能让我知道它是如何完成的,那将是非常不错的。谢谢

embedded-linux yocto meta-raspberrypi
1个回答
1
投票

这是在树莓派上使用SWUpdate进行OTA的一个很好的例子。https://mkrak.org/2018/01/26/updating-embedded-linux-devices-part2/

我必须进行一些更改才能使用最新的zeus版本。以下是ubuntu 18.04上的分步命令。 (自2020年3月22日起,该分支一直与主分支合作)

安装所有必需的依赖项。 (下面的https://medium.com/@shantanoodesai/run-docker-on-a-raspberry-pi-4-with-yocto-project-551d6b615c0b中的安装脚本)

sudo apt-get update
sudo apt-get install \
     gawk wget git-core diffstat unzip texinfo gcc-multilib \
     build-essential chrpath socat cpio \
     python python3 python3-pip python3-pexpect \
     xz-utils debianutils iputils-ping \
     python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev

克隆所有元层

mkdir yocto && cd yocto
mkdir layers && cd layers
git clone git://git.yoctoproject.org/poky -b zeus
git clone git://github.com/openembedded/meta-openembedded.git -b zeus
git clone https://github.com/agherzan/meta-raspberrypi.git -b zeus
git clone https://github.com/sbabic/meta-swupdate -b zeus

git clone https://github.com/sbabic/meta-swupdate-boards.git -b master

cd ..
. layers/poky/oe-init-build-env build

添加图层。如果失败,则手动修改build / conf / bblayers.conf以包括下面指定的所有层

bitbake-layers add-layer ../layers/meta-openembedded/meta-oe
bitbake-layers add-layer ../layers/meta-openembedded/meta-python
bitbake-layers add-layer ../layers/meta-openembedded/meta-networking
bitbake-layers add-layer ../layers/meta-openembedded/meta-multimedia
bitbake-layers add-layer ../layers/meta-raspberrypi
bitbake-layers add-layer ../layers/meta-swupdate
bitbake-layers add-layer ../layers/meta-swupdate-boards

将以下内容添加到build / conf / local.conf中(默认情况下,Raspberry pi不使用uboot引导加载程序。swupdate需要ext4.gz映像。)

RPI_USE_U_BOOT = "1"
IMAGE_FSTYPES = "rpi-sdimg ext4.gz"
PREFERRED_PROVIDER_u-boot-fw-utils = "libubootenv"

现在终于烤了。 meta-swupdate-boards包含一些硬件的示例。我能够复制raspberrypi3开发板实现以轻松支持raspberrypi2。

MACHINE=raspberrypi3 bitbake update-image

这应该在build / tmp / deploy / image / raspberrypi3 /下创建core-image-full-cmdline-raspberrypi3.rpi-sdimg和update-image-raspberrypi3.swu文件。

[将core-image-full-cmdline-raspberrypi3.rpi-sdimg图像刻录到SD卡,然后使用update-image-raspberrypi3.swu对其进行更新。

使用Balena Etcher等UI工具或通过命令行更新到Flash。请注意,目标文件系统/dev/disk2可能有所不同。

sudo dd if=core-image-full-cmdline-raspberrypi3.rpi-sdimg of=/dev/disk2 bs=1m

一旦pi启动,请转到pi_ipaddress:8080。拖放update-image-raspberrypi3.swu以更新固件。

© www.soinside.com 2019 - 2024. All rights reserved.