Cha*_*les 2 openembedded yocto
我们正在为我们的项目使用Variscite VAR-SOM-AM33平台,软件平台基于OpenEmbedded/Yocto.
为确保硬件与当前软件一起运行,设备已连接到互联网.到目前为止,我们一直在遵循OE配方并生成ipk并通过opkg应用软件更新.
但是,由于某些配方写得不好(在升级过程中无法卸载/安装),因此该过程并不令人满意.什么强大的技术/解决方案可用于基于OE/Yocto的系统?
提前致谢.
小智 5
我正在开发元数据层,以将Clear Linux中的软件更新程序(swupd)与Yocto Project/OpenEmbedded Core集成.
swupd执行整个操作系统更新,而不是基于包的更新,使用二进制增量只更新更改的文件并以有效的方式执行此操作.
我最近写了一些文档(在meta-swupd repo中的docs/Guide.md文件中)关于采用"Clear Linux Way"来利用基于OE/YP的发行版的meta-swupd.Yocto Project wiki上提供了该指南的一个wikified版本,包括一个指向图层git存储库的链接:https://wiki.yoctoproject.org/wiki/Meta-swupd
我在Github上也有一个示例层,它演示了图层的使用(这也是我测试了很多meta-swupd的发行版层):https: //github.com/incandescant/meta-myhouse
关于mender.io,我最近与他们谈过他们的开源更新.
目前,他们已经开发了客户端,并且正在服务器端工作.他们使用HTTP和JSON.这是他们的混蛋,目前只支持Beaglebone和QEMU.
mender.io的工作方式是:它们将有一个持久性数据和uboot.和2个rootfs(活动和备份)进行更新.因此,当服务器上有更新时,将通知用户将其拉下来.提供mender -rootfs image更新命令.如果升级成功,则用户提供另一个mender -commit命令.如果没有mender -commit,则rootfs将在下次重新引导时回滚到先前的rootfs.Mender目前仅支持更新内核和rootfs.
主要作用mender.io是确保大规模分布式映像升级过程可以从错误中恢复.在服务器端,mender.io使用UUID为大规模分布式设备开发了一个管理服务器.
不要做广告,但请尝试mender.io并提供反馈,以便软件可以更加成熟.
我想将SWUpdate添加到您应该考虑的软件包列表中.Konsulko Group for Automotive-Grade Linux 在2016年的一篇论文中推荐了它.该论文提到了一些其他选项,并提供了对各种工具的分析,因此可能值得一读.引用论文:
我们建议参考AGL软件更新策略在双拷贝配置中使用SWUpdate并集成OSTree支持.这允许从异常情况的损坏分区中恢复,但也优化了可以根据需要快速应用或回滚小型增量更新以满足OEM策略的常见情况.
我不完全同意这篇论文.例如,他们注销了Mender.io,因为它缺乏社区支持,但IMO汽车级Linux组具有足够的影响力,可以从头开始创建受欢迎程度.不过,这是一篇很好的论文,他们选择SWUpdate这一事实对我很有意思.我已经倾向于它,因为作者sbabic参与了U-Boot软件开发,我们使用U-Boot将新图像刻录到我们的设备中.
目前我对所有当前的选项都不满意,但主要是因为我想要额外的功能.我可能会选择一个包含一个或多个上述软件包的定制系统.不幸的是,这不是SO喜欢的那种明确的答案,但我希望它有所帮助.