diff --git a/build-docker.sh b/build-docker.sh index d28b687..38ae9ca 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -109,10 +109,10 @@ case $(uname -m) in ;; esac -# Check if qemu-arm-static and /proc/sys/fs/binfmt_misc are present +# Check if qemu-aarch64-static and /proc/sys/fs/binfmt_misc are present if [[ "${binfmt_misc_required}" == "1" ]]; then - if ! qemu_arm=$(which qemu-arm-static) ; then - echo "qemu-arm-static not found (please install qemu-user-static)" + if ! qemu_arm=$(which qemu-aarch64-static) ; then + echo "qemu-aarch64-static not found (please install qemu-user-static)" exit 1 fi if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then @@ -123,13 +123,15 @@ if [[ "${binfmt_misc_required}" == "1" ]]; then fi echo "binfmt_misc mounted" fi - # Register qemu-arm for binfmt_misc (binfmt_misc won't care duplicate entries unless they have common names) - reg="echo ':qemu-arm-rpi:M::"\ -"\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:"\ + if ! grep -q "^interpreter ${qemu_arm}" /proc/sys/fs/binfmt_misc/qemu-aarch64* ; then + # Register qemu-aarch64 for binfmt_misc + reg="echo ':qemu-aarch64-rpi:M::"\ +"\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:"\ "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:"\ -"$qemu_arm:F' > /proc/sys/fs/binfmt_misc/register" - echo "Registering qemu-arm for binfmt_misc..." - sudo bash -c "$reg" 2>/dev/null || true +"${qemu_arm}:F' > /proc/sys/fs/binfmt_misc/register" + echo "Registering qemu-aarch64 for binfmt_misc..." + sudo bash -c "${reg}" 2>/dev/null || true + fi fi trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${DOCKER_CMDLINE_NAME}' SIGINT SIGTERM