注意:x86 Ubuntu下构建的aarch64 Ubuntu版本需要和程序最终运行的aarch64 Ubuntu的版本保持一致(如果x86 Ubuntu版本和构建的aarch64 Ubuntu版本一致,安装aarch64的编译工具会简单一些,直接apt install
。本文以Ubuntu 20.04.03举例)。
- 准备aarch64(即arm64)的文件系统rootfs;
- 从http://cdimage.ubuntu.com/ubuntu-base/releases/下载对应版本的base镜像,之后将基于此镜像构建编译环境;
- 在x86 Ubuntu上新建一个rootfs目录,并将下载的base镜像解压到该目录;
$ mkdir /path/to/rootfs
$ tar -zxf ubuntu-base-20.04.3-base-arm64.tar.gz -C /path/to/rootfs
- 在x86 Ubuntu上安装chroot到/path/to/rootfs所必须的软件(正常情况,因为可执行程序被编译目标架构不同,在x86 Ubuntu上无法执行aarch64 Ubuntu上的命令,也就无法在x86 Ubuntu上给aarch64 Ubuntu以apt的方式安装程序。然而qemu可以在x86 Ubuntu上构建一个aarch64 Ubuntu的运行环境,帮我们解决这个问题);
$ sudo apt-get install qemu qemu-user-static binfmt-support debootstrap