Install piaware arm64 from Fligtaware Repository, on x86_64 (amd64) PC using QEMU

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  

1 Like

Thanks for sharing this brilliant guide! As the saying goes, ‘If it ain’t broke, don’t fix it,’ so I’m sticking with my current stable setup for now. However, I’ve bookmarked this thread to keep it in mind for any future needs.

1 Like

@SHIRAKAMI

Piaware arm64 & dump1090-fa arm64 packages installed on x86_64 PC with OS Linux Mint Debian Edition ( LMDE-7 Gigi ) through QEMU

 

 

1 Like

Thank you so much for testing this out and sharing the proof with LMDE-7 (Gigi)!

My current ESPRIMO setup is running smoothly, so I’m keeping it as is for now. However, once I can spare another old PC, I’d love to try setting up LMDE-7 or Debian 13 with your QEMU guide. Truly appreciate your dedication and inspiration! YUKIO

@SHIRAKAMI

This thread is just an experiment to demonstrate that arm64 packages can be run on amd64 x86_64 PC using qemu if x86_64 packages are not available from a repository.

Since source-code of piaware & dump1090-fa are available on Github, the amd64 packages can be built and installed on x86_64 computer natively without sandboxing through qemu or docker. This is a much cleaner solution, and I recommend to use it for piaware, rather than using qemu method shown in this thread, or using docker container available on various sites on internet / github.

To make it very easy and simple to build & install the piaware & dump1090-fa packages from source-code, I have written scripts and posted those on Github. I recommend to use those scripts rather than the QEMU or DOCKER to avoid unnecessarily adding a layer of QEMU or DOCKER CONTAINER.

1 Like

LMDE-7: Converted GUI to Server by stopping Graphical Login Screen and removing Cinnamon & Mint GUI Tools and LightDM

Removing Cinnamon and Mint GUI Tools

(1) Purge the main Cinnamon desktop and Mint-specific graphic packages to free up space:

sudo apt purge cinnamon* mint-meta-cinnamon* mint*  

(2) Remove the login screen manager (LightDM) so it stops trying to load a GUI:

sudo apt purge lightdm lightdm-gtk-greeter

(3) Clean up leftover dependency packages that are no longer needed:

sudo apt autoremove

(4) Reboot System

sudo reboot

The system will now boot into a black-and-white text login prompt (TTY) instead of the desktop.

 

1 Like

@abcd567 Thanks for sharing these great experiments and insights!

Inspired by your post on slimming down, I checked the htop on my running ESPRIMO setup. It’s keeping lean and running smoothly around 650MB of RAM with readsb and fr24 natively handling the 24/7 watch.

Seeing how you and others explore and refine these native setups is always so inspiring. Thanks again for all your dedication to the community! YUKIO

1 Like