一、背景
1、在x86搭建arm64 ros的开发环境。
2、宿主机:虚拟机x86_ubuntu18
3、设备:jetson agx xavier(jetpack4.6.1)
jetson已安装各种软件环境
二、docker环境搭建
打包jeston文件系统
把U盘插到jetson,然后执行打包命令。
--exclude是排除不需要打包的文件
sudo tar -cvpf /U盘路径/jetson.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot --exclude=media/ .
2、x86加载docker文件
a、打包完成后,将U盘插到pc主机
b、将文件系统导入docker
cat jetson.tar | docker import - jetson:1.0
c、安装qemu
sudo apt-get install qemu binfmt-support qemu-user-static
d、模拟arm指令集
每次开机后,在x86运行arm容器的时候都需要执行
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
e、运行jetson镜像
docker run -it jetson:1.0 bash
然后就可以看到jetson的文件 ,可以尝试编译运行ros包,应该无异常。但是用这种方法ros2好像存在问题。