利用Docker搭建Linux ARM64架构编译环境
【前言】
不想折腾交叉编译环境,但是又实在忍不了A53上编译工程的龟速,于是乎就想着是不是可以通过Docker搭一个arm linux开发环境,这样编译好的工程直接拷进A53中就可以运行了。说干就干,踩了一些坑,但是最终还是成功了。这里简单记录一下,你们能不能看懂,就看自己的造化了。
【干货】
1、新建admin用户(因为arm那边系统用户是admin):
sudo su
adduser admin
(全程点默认)
2、切换到该用户
su admin
3、删除admin用户
deluser admin
4、安装一些必要的环境:
sudo apt install qemu-user qemu-user-static gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu build-essential
5、在docker里面搭建ros环境
sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
sudo docker run -it --name ros-arm --user=$(id -u $USER):$(id -g $USER) --env="DISPLAY" --net=host --workdir="/home/$USER" --volume="/home/$USER:/home/$USER" --volume="/etc/group:/etc/group:ro" --volume="/etc/passwd:/etc/passwd:ro" --volume="/etc/shadow:/etc/shadow:ro" --volume="/etc/sudoers.d:/etc/sudoers.d:ro" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" arm64v8/ros:kinetic
sudo docker exec -u 0 -it ros-arm sed -i 's/ports.ubuntu.com/mirrors.bfsu.edu.cn/g' /etc/apt/sources.list
sudo docker exec -u 0 -it ros-arm apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
sudo docker exec -u 0 -it ros-arm apt update
sudo docker exec -u 0 -it ros-arm apt install ros-kinetic-cv-bridge
sudo docker exec -u 0 -it ros-arm apt install ros-kinetic-move-base-msgs
sudo docker exec -u 0 -it ros-arm apt install libzmq3-dev
sudo docker exec -u 0 -it ros-arm apt install ros-kinetic-tf
6、进入容器,开始你的表演
sudo docker start ros-arm
sudo docker exec -it ros-arm bash
7、小技巧
平时开发代码,可以直接把代码拷到admin那个用户下,怎么在PC上切换用户,就不用我教了吧。
【后言】
点个赞!!!不迷路!