apollo使用docker编译aarch64版本

1、准备

1.1 拉取代码

建议:
从gitee中拉取apollo代码,github上拉取代码非常的慢

git clone https://gitee.com/ApolloAuto/apollo.git
git checkout v6.0.0

使用v6.0.0分支
为什么使用v6.0.0分支?我先前用v5.5.0里面的aarch64的docker是3年前更新的,自己测试过这个docker,无法正常编译。所以被我舍弃掉。v5.5.0中docker版本如下:

VERSION_X86_64="dev-18.04-x86_64-20191111_1530"
VERSION_AARCH64="dev-aarch64-20170927_1111"

1.2 拉取镜像

查看v6.0.0版本中镜像名如下:

VERSION_X86_64="dev-x86_64-18.04-20200914_0742"
VERSION_AARCH64="dev-aarch64-18.04-20200915_0106"

这个版本的镜像都是2020年做的,应该能够用,于是从Docker Hub中拉取相应版本。
在终端中输入以下指令进行拉取:

docker pull apolloauto/apollo:dev-x86_64-18.04-20200914_0742
docker pull apolloauto/apollo:dev-aarch64-18.04-20200915_0106

注意:
因为笔记本上面是x86架构,docker中是aarch架构。需要拉取另外一个镜像,否则无法启动aarch64的镜像。

docker pull multiarch/qemu-user-static:latest

1.3 导入镜像

  • 拷贝dev_start.sh dev_into.sh
    将dev_start.sh以及dev_into.sh拷贝一份分别命名为aarch_start.sh 以及 aarch_into.sh。
  • aarch_start.sh中指定加载aarch64版本镜像
# TARGET_ARCH=“$(uname -m)”
TARGET_ARCH=aarch64
  • aarch_start.sh屏蔽map以及其他镜像
    屏蔽dev_start.sh中挂载的map_volumes以及other_volumes,就不会去pull其他的镜像。
    # mount_map_volumes
    # mount_other_volumes
  • 启动镜像
    注意:
    在直接启动aarch64的镜像之前需要启动以下multiarch/qemu-user-static:latest镜像。
docker run --rm --privileged multiarch/qemu-user-static:latest --reset -p yes

再使用以下指令从本地启动上一步骤拉取的镜像。-l指令

./docker/scripts/dev_start.sh -l
  • 进入镜像
./docker/scripts/aarch_into.sh

镜像架构

2、编译

2.1 编译cyber

在终端中输入编译cyber指令

./apollo.sh build cyber

等待一段时间后即可以编译完成,如果遇到错误,可以试着将/apollo/.cache删除。再重新编译。因为可能是你在x86架构下面也进行了编译,导致出错。所以,我修改了以下dev_start.sh 和 dev_into.sh中。可以在启动时链接到不同的路径,不需要删除.cache重新编译。后面会有相关代码链接。

3、部署

3.1 将相关文件上传到xavier

具体如下:
部署需要的文件
注意:
找不到libPocoFoundation.so.71库。将libPocoFoundation.so建立一个软连接即可。

cd /usr/lib
sudo ln -svf libPocoFoundation.so libPocoFoundation.so.71

4、运行

4.1 准备

  • 拉取aarch64库
git clone https://gitee.com/mountain_xiu/apollo_aarch64_bin.git
  • 建立软连接
sudo ln -svf path_to_apollo_aarch64_bin /apollo
  • source环境变量
source /apollo/apollo.env

4.2 运行

  • 运行talker
cd apollo
./bazel-bin/cyber/examples/talker
  • cyber_monitor显示数据
    cyber_monitor显示

链接

apollo_aarch64_bin

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
Apollo 6.0 Docker是指使用Docker容器来运行Apollo 6.0的开发环境。首先,你需要检查并切换到Apollo的r6.0.0分支,可以使用以下命令:cd apollo git checkout r6.0.0 \[1\]。然后,你可以使用bash docker/scripts/dev_start.sh命令来启动Apollo开发Docker容器 \[1\]。如果你想要设置循环回放模式,可以使用选项--loop \[2\]。如果你想要停止Apollo容器,你可以在容器中执行exit命令或者在宿主机中执行docker stop $(docker ps -aq)命令来停止所有的Docker容器,或者使用docker stop apollo_xxxxx命令来停止特定的Apollo容器 \[2\]。如果你想要重新启动Apollo Docker,你可以使用以下命令:systemctl start docker && systemctl enable docker systemctl status docker \[3\]。 #### 引用[.reference_title] - *1* *3* [【apollo6.0安装全教程】](https://blog.csdn.net/weixin_42377570/article/details/123429583)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Apollo6.0安装文档教程——环境搭建、安装、编译、测试](https://blog.csdn.net/qq_37346140/article/details/127405885)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值