Azure Device Update安装失败:sw-description缺少adu-swupdate.sh所需postinstall属性
问题根因
从你提供的SWUpdate日志可以直接定位错误根源:SWUpdate运行时缺少postinstall特性支持,或是sw-description配置文件中未正确声明脚本的postinstall属性,导致adu-swupdate.sh无法被识别执行。
排查与解决步骤
第一步:确认SWUpdate编译时已开启postinstall特性
meta-swupdate层的默认编译配置通常未开启脚本执行和postinstall功能,你需要在自定义层新增swupdate的bbappend文件,添加如下配置:SWUPDATE_CONFIG:append = " \ CONFIG_SCRIPTS=y \ CONFIG_POSTINSTALL=y \ "重新编译SWUpdate和系统镜像后,可在目标设备上运行
zcat /proc/config.gz | grep SWUPDATE(如果你的系统保留了编译配置),或是查看SWUpdate启动日志确认特性已开启。第二步:检查sw-description文件的脚本声明配置
解压你当前的.swu包,提取sw-description文件,确认adu-swupdate.sh的声明段符合以下规范:scripts: ( { filename = "adu-swupdate.sh"; type = "postinstall"; path = "/tmp/adu-swupdate.sh"; sha256 = "你的脚本对应的sha256哈希值"; } );重点确认
type字段值为postinstall,无拼写错误,也没有遗漏该字段。第三步:验证修复效果
配置调整完成后,重新打包.swu镜像,推送到Azure Device Update发起更新测试即可。如果仍有报错,可进一步检查adu-swupdate.sh的可执行权限,以及脚本中调用的命令是否在目标系统中存在。
内容的提问来源于stack exchange,提问作者Vishwasrao
相关产品推荐
相关产品推荐

