update_engine模块移植到linux平台

本文详细记录了将Google的update_engine模块移植到Linux嵌入式平台的过程,包括获取源码、编译buildroot、解决配置依赖、生成makefile以及编译过程中遇到的各种错误及其解决方案,如autoconf版本问题、依赖库缺失等。最终成功编译出update_engine的可执行bin。
摘要由CSDN通过智能技术生成

    update_engine是google提供的一个升级模块,对于linux的平台,我们可以移植到我们的嵌入式平台,通过update_engine模块对系统升级,最近由于工作需要,在linux平台上面移植一下,其中遇到了很多问题,在不停的寻找答案中,问题都一一解决了,现在分享一下移植的过程,提供给有同样需求的同鞋。

    移植过程如下:

   1. 获取update_engine的源码 
        https://github.com/coreos/update_engine。

      2. 编译buildroot的代码

        source build/envsetup.sh
        cd buildroot
        make mesona111_xxxxb_defconfig 
        make

    3. 拷贝update_engien代码至buildroot/output/build/

        mv update_engine-master update_engine

      4. 查看update_engine目录,发现里面没有makefile,只有autogen.sh configure.ac Makefile.am三个文件,我们需要通过这三个文件生成makefile。我们先查看configure.ac:

      

     发现update_engine需要依赖其他的模块,但是我们不确定哪些是已经有的,哪些还没有,我们直接执行,根据错误提示信息,然后把对应的模块添加进来。

    5. 生成configure(生成makefile需要的)

       ./autogen.sh

       有如下错误信息:

      + autoreconf --force --install --symlink
      Can't exec "libtoolize": No such file or directory at /usr/bin/autoreconf line 196.
      Use of uninitialized value in pattern match (m//) at /usr/bin/autoreconf line 196.
      configure.ac:4: error: Autoconf version 2.69 or higher is required
      configure.ac:4: the top level
      autom4te: /usr/bin/m4 failed with exit status: 63
      aclocal: /usr/bin/autom4te failed with exit status: 63
      autoreconf: aclocal failed with exit status: 63

      根据提示信息,是autoconf的版本太低导致的,编译过程我们发现,sdk本身编译出了autoconf工具:

      autoconf --version           (autoconf (GNU Autoconf) 2.68)

      output/host/usr/bin/autoconf --version     (autoconf (GNU Autoconf) 2.69)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值