You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Raspberry Pi Zero(armv6l)安装deviceupdate-agent时postinst脚本执行失败求助

问题原因

你遇到的Illegal instruction错误(退出码132),本质是微软预编译的deviceupdate-agent及相关扩展是针对ARMv7/ARMv8架构编译的,而Raspberry Pi Zero采用的是ARMv6架构,不支持这些二进制文件里的指令集,导致执行时触发非法指令。

解决方案

临时绕过安装报错,完成包配置

先注释掉postinst脚本中报错的注册步骤,让dpkg完成配置:

  1. 编辑postinst脚本:
    sudo nano /var/lib/dpkg/info/deviceupdate-agent.postinst
    
  2. 找到第218行的如下命令,在行首添加#注释掉:
    # $adu_bin_path -l 2 --extension-type updateContentHandler --extension-id "microsoft/apt:1" --register-extension $adu_extensions_sources_dir/$adu_apt_handler_file
    
  3. 保存退出后,重新执行配置命令:
    sudo dpkg --configure deviceupdate-agent
    

手动适配ARMv6架构的更新扩展

完成包配置后,官方的microsoft/apt:1扩展无法在ARMv6上运行,你需要:

  1. 从源码编译适配ARMv6的扩展:
    • 安装编译依赖:
      sudo apt install git build-essential cmake libcurl4-openssl-dev libssl-dev libsystemd-dev
      
    • 获取Azure Device Update for IoT Hub的源码,进入APT扩展目录,编译时指定ARMv6架构:
      cd 源码目录/src/extensions/update-content-handlers/apt
      mkdir build && cd build
      cmake .. -DCMAKE_C_FLAGS="-march=armv6" -DCMAKE_CXX_FLAGS="-march=armv6"
      make
      
  2. 注册编译好的扩展:
    sudo /usr/bin/adu -l 2 --extension-type updateContentHandler --extension-id "microsoft/apt:1" --register-extension ./libadu_apt_handler.so
    

替代方案:使用源码编译完整的deviceupdate-agent

如果上述方法仍有问题,可以直接从源码编译整个agent,确保完全适配ARMv6:

  1. 安装编译依赖(同上)
  2. 进入agent源码目录编译:
    cd 源码目录/src/agent
    mkdir build && cd build
    cmake .. -DCMAKE_C_FLAGS="-march=armv6" -DCMAKE_CXX_FLAGS="-march=armv6"
    make
    
  3. 替换系统中的agent二进制文件:
    sudo cp ./adu /usr/bin/adu
    

内容的提问来源于stack exchange,提问作者Yokto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 10:55:19