Created
April 18, 2019 09:55
-
-
Save hiroshi-nishiura/1b6703e21244d1641b78adc6b5d32add to your computer and use it in GitHub Desktop.
build aarch64/armhf docker container on ubuntu x86_64
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# require packages | |
# apt install g++-aarch64-linux-gnu | |
# apt install g++-arm-linux-gnueabihf | |
# apt install qemu-user-static | |
echo BUILD arm64v8/ubuntu:multiarch | |
docker run -dit --name c_arm64v8 arm64v8/ubuntu:18.04 | |
docker cp /usr/bin/qemu-aarch64-static c_arm64v8:/usr/bin/ | |
docker cp /usr/bin/qemu-arm-static c_arm64v8:/usr/bin/ | |
docker cp /usr/arm-linux-gnueabihf/lib c_arm64v8:/lib/arm-linux-gnueabihf | |
docker commit c_arm64v8 arm64v8/ubuntu:multiarch | |
docker rm c_arm64v8 | |
docker run -dit --name c_arm64v8 arm64v8/ubuntu:multiarch | |
docker exec c_arm64v8 ln -sr /lib/arm-linux-gnueabihf/ld-2.23.so /lib/ld-linux-armhf.so.3 | |
docker commit c_arm64v8 arm64v8/ubuntu:multiarch | |
echo COPY ROOTFS | |
mkdir -p rootfs | |
docker cp c_arm64v8:/lib rootfs | |
mkdir -p rootfs/usr | |
docker cp c_arm64v8:/usr/lib rootfs/usr | |
echo CLEANUP | |
docker stop c_arm64v8 | |
#docker system prune -f | |
docker rm c_arm64v8 | |
docker image prune -f |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
x86_64 LinuxでARMの実行環境をDockerで構築するスクリプト
gdbリモートデバッグ方法
gdbserverはDockerコンテナ上では動かないので、qemu-[arm|aarch64]-staticのgdb機能を使う
をコンテナで実行するとgdbserverと同等のリモートデバッグが可能。
/rootをホストディレクトリにする
クロスコンパイルしてリモートデバッグするとき、コンテナの/rootをホスト側の開発ディレクトリを共有してしまうと便利である。
bashが正常に動くように、proj-dirには/rootに元々入っている .bashrc と .profile をコピーしておく。