Debian 13 Trixie on AMD64 (x86_64) PC
Install piaware from Fligtaware Repository using QEMU
NOTE:
The method below applies to Debian OS only..
For Ubuntu & Ubuntu based OS, some more steps are required as Ubuntu requires separate repository (ubuntu ports) for arm64 packages
STEP-1: Install 3 packages for QEMU support
sudo apt -y install \
qemu-user \
qemu-user-binfmt \
binfmt-support
STEP-2: Add architecture arm64
sudo dpkg --add-architecture arm64
sudo apt update
STEP-3: Install package libc6:arm64 for arm64 support
sudo apt -y install libc6:arm64
STEP-4: Configure Flightaware Repository
Note: The first command below is very long. Please scroll right to see and copy it in full.
URL=https://www.flightaware.com/adsb/piaware/files/packages/pool/piaware/f/flightaware-apt-repository/flightaware-apt-repository_1.3_all.deb
wget ${URL}
sudo dpkg -i flightaware-apt-repository_1.3_all.deb
sudo apt update
STEP-5: [For LMDE Users Only]
(5.1) Fix Repository Codename Mismatch
Because Linux Mint Debian Edition (LMDE) uses its own codenames (like faye or gigi), the FlightAware installer script puts the wrong suite name into apt sources. FlightAware’s servers only recognize Debian names like bookworm or trixie.
If you are running LMDE, you must manually correct this file before updating:
(5.1.1) Open the FlightAware sources file in a text editor:
sudo nano /etc/apt/sources.list.d/flightaware.sources
(5.1.2) Look for the line that says Suites: faye (for LMDE-6) or Suites: gigi (for LMDE-7). Change it to map to the corresponding Debian release:
- For LMDE 6 (Faye), change it to:
Suites: bookworm - For LMDE 7 (Gigi), change it to:
Suites: trixie
(5.1.3) Save and close the file, then run:
sudo apt update
(5.2) Create blacklist for RTL dongle
(5.2.1) Create Blacklist file
sudo nano /etc/modprobe.d/blacklist-rtlsdr.conf
Copy paste following code in the above blank file, Save and Close file:
blacklist dvb_usb_rtl28xxu
blacklist dvb_usb_v2
blacklist rtl_2830
blacklist rtl_2832
blacklist r820t
(5.2.2) Update the Kernel and Reboot
sudo update-initramfs -u
sudo reboot
STEP-6: Install lighttpd, and do workaround for it’s failure under QEMU
(6.1) install arm64 version of lighttpd, and put it on hold, so that it is NOT replaced by AMD64 version during updates.
sudo apt install lighttpd:arm64
sudo apt-mark hold lighttpd:arm64
(6.2) The work-around below is to allow QEMU Memory Allocation inside the systemd Sandbox
By default, the lighttpd systemd service file restricts memory allocations (MemoryDenyWriteExecute=true). This security rule blocks the QEMU emulator from handling dynamically translated instruction buffers (mprotect errors).
(6.2.1) Create a drop-in override file for lighttpd.service
sudo mkdir -p /etc/systemd/system/lighttpd.service.d
sudo nano /etc/systemd/system/lighttpd.service.d/override.conf
(6.2.2) In above blank file, copy-paste following code, and save file
[Service]
MemoryDenyWriteExecute=false
(6.2.3) Reloadsystemd-daemon and restart lighttpd service
sudo systemctl daemon-reload
sudo systemctl restart lighttpd
STEP-7: Install dump1090-fa and piaware packages from Flightaware Repository
sudo apt install dump1090-fa
sudo apt install piaware
sudo reboot







