Script for building Proxmox Backup Server 4.x for ARM64.
You can find unoffical Debian packages that are created with this script in the Releases section.
With the script you can also download or install all packages of the latest release automatically.
Download and install
./build.sh install or a specific version ./build.sh install=4.2.2
Download only
./build.sh download or a specific version ./build.sh download=4.2.2
For an even easier experience, you can also use the Backup Server Docker container, which is built on top of these same packages.
At least 4 GB are required for compiling. On devices with low memory, SWAP must be used (see Help section).
apt-get install -y --no-install-recommends \
build-essential curl ca-certificates sudo git lintian fakeroot \
pkg-config libudev-dev libssl-dev libapt-pkg-dev libclang-dev \
libpam0g-dev zlib1g-dev nettle-devcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s
source ~/.cargo/env./build.sh or
./build.sh client (build only proxmox-backup-client package)The compilation can take several hours.
After that you can find the finished packages in the folder packages/
You can build ARM64 .deb packages using the provided Dockerfile and docker buildx:
docker buildx build -o packages --platform linux/arm64 .You can also set build arguments for base image and build.sh options:
docker buildx build -o packages --build-arg buildoptions="client debug" --build-arg baseimage=ubuntu:jammy --platform linux/arm64 .Once the Docker build is completed, packages will be copied from the docker build image to a folder named packages in the root folder.
For cross compiling you need to enable multiarch and install the needed build dependencies for the target architecture. For the tests to work qemu-user-binfmt is needed.
dpkg --add-architecture arm64apt update && apt-get install -y --no-install-recommends \
build-essential crossbuild-essential-arm64 curl ca-certificates sudo git lintian \
pkg-config libudev-dev:arm64 libssl-dev:arm64 libapt-pkg-dev:arm64 apt:amd64 \
libclang-dev libpam0g-dev:arm64 pkgconf:arm64 zlib1g-dev:arm64 \
qemu-user-binfmt (apt:amd64 is necessary because libapt-pkg-dev:arm64 would break the dependencies without it)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -sSf | sh -s
source ~/.cargo/env
rustup target add aarch64-unknown-linux-gnu./build.sh crosscd packages
sudo apt install $(printf '%s\n' ./*.deb | grep -v 'static')sudo apt install \
./packages/proxmox-backup-client_*_arm64.deb \
# Optional: ./packages/proxmox-backup-file-restore_*_arm64.debyou can add the debug option to redirect the complete build process output also to a file (build.log)
./build.sh debugto see PBS users:
proxmox-backup-manager user listto update root user pwd:
proxmox-backup-manager user update root@pam --password {pwd}more info: https://pbs.proxmox.com/docs/user-management.html
from https://askubuntu.com/questions/178712/how-to-increase-swap-space/1263160#1263160
Check swap memory:
swapon --show or free -hChange swapsize on systems with fstab enabled swap:
sudo swapoff /var/swap
sudo fallocate -l 4G /var/swap
sudo mkswap /var/swap
sudo swapon /var/swapChange swapsize on systems with dphys-swapfile service:
sudo sed -i "s#.*CONF_\(SWAPSIZE\|MAXSWAP\)=.*#CONF_\1=4096#" /etc/dphys-swapfile
sudo service dphys-swapfile restart400 Bad Request on Raspberry Pi 5 (wofferl/proxmox-backup-arm64#40)
To fix the 400 Bad Request error on Raspberry Pi 5:
- Edit
/boot/firmware/config.txton the host system - Add the following line at the end:
kernel=kernel8.img - Reboot the Raspberry Pi
This switches to the 4k page-size kernel, which is compatible with Proxmox Backup Server.
Technical explanation: The Raspberry Pi 5's default kernel uses 16k page-size, which is incompatible with Proxmox Backup Server.
Raspberry Pi OS apt update && apt upgrade failing (wofferl/proxmox-backup-arm64#60)
As Proxmox source repository does not work for ARM architecture anyway in order to keep underlying Raspberry Pi OS
up to date by running apt update && apt upgrade it is required to comment it out from apt sources.
sudo sed -i 's#^Enabled:.*#Enabled: false#g' /etc/apt/sources.list.d/pbs-enterprise.sources/etc/apt/sources.list.d/pbs-enterprise.sources
Types: deb
URIs: https://enterprise.proxmox.com/debian/pbs
Suites: trixie
Components: pbs-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Enabled: false
Special thanks to wofferl, this project would not exist without his invaluable work.
The product names, logos, brands, and other trademarks referred to within this project are the property of their respective trademark holders. This project is not affiliated, sponsored, or endorsed by Proxmox Server Solutions GmbH.