The M1 ARM64 Debian 11 UOS-v20 compilation toolchain is ready, folks, let's get to work!

This toolchain has been compiled/verified under the Parallels virtual machine - Debian 11.7/UOS-v20 - ARM64 version system.

It is stored on Baidu Cloud Drive, including the packaged img image files.

Link: https://pan.baidu.com/s/1K9RVYnv8Wc3Ln8yc0oxwdg Extraction code: 9255

  1. Download Debian 11.7 ARM64 version system, also compatible with UOS-v20 Professional Edition ARM64.

Index of /cdimage/archive/11.7.0/arm64/iso-cd (accum.se)

  1. Download duo-buildroot-sdk and synchronize the source code.

When installing the dependencies for duo-buildroot-sdk, you may encounter a version conflict prompt for libssl-dev:

"The following packages have unmet dependencies:

libssl-dev : Depends: libssl1.1 (= 1.1.1n-0+deb11u4) but 1.1.1n-0+deb11u5 is to be installed

E: Unable to correct problems, you have held broken packages."

Use aptitude to downgrade and resolve:


sudo apt install aptitude

sudo aptitude install libssl-dev

Choose no, yes, yes when prompted.

  1. Download the ARM64 version of the toolchain from the cloud drive.

Download host-tools.tar.xz and extract it to the host-tools directory.

  1. Modify the compilation tool configuration in build/milkvsetup.sh

CROSS_COMPILE_PATH_64_NONOS_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-elf-arm64

CROSS_COMPILE_PATH_GLIBC_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-linux-arm64

CROSS_COMPILE_PATH_MUSL_RISCV64="$TOOLCHAIN_PATH"/gcc/riscv64-linux-musl-arm64

  1. Replace files

Download build-tools-patch.tar.xz and perform the following operations:

Copy gen_init_cpio to duo-buildroot-sdk/build/tools/common/

Copy mkimage to duo-buildroot-sdk/build/tools/common/prebuild

For Debian, set the mkdosfs search path:


export PATH=/media/yxw/milkv/duo-buildroot-sdk/ramdisk/rootfs/common_arm64/sbin:$PATH

  1. Install CMake for ARM64

wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-aarch64.sh

chmod +x cmake-3.26.4-linux-aarch64.sh

sudo ./cmake-3.26.4-linux-aarch64.sh --skip-license --prefix=/usr/local/

  1. Compile

Run build_milkv.sh to start the compilation.

  1. Download and install the Flash tool for ARM64

wget https://github.com/futurejones/balena-etcher-arm/releases/download/v1.7.9/balena-etcher-electron_1.7.9+5945ab1f_arm64.deb

sudo dpkg -i balena-etcher-electron_1.7.9+5945ab1f_arm64.deb

If you encounter the following error during installation:


dpkg: dependency problems prevent configuration of balena-etcher-electron:

balena-etcher-electron depends on gconf2; however:

Package gconf2 is not installed.

balena-etcher-electron depends on gconf-service; however:

Package gconf-service is not installed.

balena-etcher-electron depends on libgconf-2-4; however:

Package libgconf-2-4 is not installed.

You need to run the following commands:


sudo apt install gconf2

sudo apt --fix-broken install

If everything goes smoothly, you should see the launch icon.