diff --git a/common.sh b/common.sh index 573b309a95..1e82d5b7d8 100644 --- a/common.sh +++ b/common.sh @@ -992,3 +992,36 @@ BOAT echo -e "${V_VIDOFF}" die "$* failed" } + +# The binfmt_misc support in the kernel is required. +# The aarch64 binaries should be executed through +# "/usr/bin/qemu-aarch64-static" +setup_qemu_static() { + local root_fs_dir="$1" + case "${BOARD}" in + amd64-usr) return 0;; + arm64-usr) + if [[ -f "${root_fs_dir}/sbin/ldconfig" ]]; then + sudo cp /usr/bin/qemu-aarch64 "${root_fs_dir}"/usr/bin/qemu-aarch64-static + else + die "Missing basic layout in target rootfs" + fi + ;; + *) die "Unsupported arch" ;; + esac +} + +clean_qemu_static() { + local root_fs_dir="$1" + case "${BOARD}" in + amd64-usr) return 0;; + arm64-usr) + if [[ -f "${root_fs_dir}/usr/bin/qemu-aarch64-static" ]]; then + sudo rm "${root_fs_dir}"/usr/bin/qemu-aarch64-static + else + die "File not found" + fi + ;; + *) die "Unsupported arch" ;; + esac +}