[OUTDATED] Howto Install Piaware 3.8.1 on 64 bit Raspberry Pi OS (Raspbian) / Pi4

Distro image used: 2020-05-27-raspios-buster-arm64

Download page :
https://www.raspberrypi.org/forums/viewtopic.php?f=117&t=275370&sid=91848313695f827a00335342fca12d02

Direct Download Link:
https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2020-05-28/2020-05-27-raspios-buster-arm64.zip

 

OS details (on RPi 4)

$ uname -a
Linux raspberrypi 5.4.42-v8+ #1319 SMP PREEMPT Wed May 20 14:18:56 BST 2020 aarch64 GNU/Linux

$ lsb_release -sc
buster

NOTE: Steps given below are for manually building & installing 64-bit dump1090-fa, piaware, and dump978-fa packages. For automated installation by a script (using pre-built 64-bit packages), please visit: https://github.com/abcd567a/piaware-64bit-raspbian/blob/master/README.md

1 - Install tools needed to build (1)dump1090-fa, (2)piaware, and (3)dump978-fa

$ sudo apt install debhelper dh-systemd   

 

2 - DUMP1090-FA

2.1 - Install dump1090-fa dependencies:

$ sudo apt install lighttpd librtlsdr-dev libusb-1.0-0-dev   
$ sudo apt install libncurses5-dev libbladerf-dev   

2.2 - Clone source code, build and install dump1090-fa package

$ cd ~/
$ git clone https://github.com/flightaware/dump1090  
$ cd dump1090  
$ sudo dpkg-buildpackage -b --no-sign  

$ cd ../  
$ sudo dpkg -i dump1090-fa_3.8.1_arm64.deb  

## REBOOT
$ sudo reboot  

 

3 - PIAWARE

3.1 - Install dependencies

$ sudo apt install libboost-system-dev libboost-program-options-dev   
$ sudo apt install libboost-regex-dev libboost-filesystem-dev    
$ sudo apt install tclx8.4 tcllib itcl3     

3.2 - Build & Install dependency tcl-tls from source code.

## Install dependencies
$ sudo apt install libssl-dev tcl-dev chrpath   


## Clone source code, build & Install tcl-tls  
cd ~/  
$ git clone http://github.com/flightaware/tcltls-rebuild.git   
$ cd tcltls-rebuild   
$ ./prepare-build.sh buster     
$ cd package-buster   
$ sudo dpkg-buildpackage -b --no-sign   
$ cd ../   
$ sudo dpkg -i tcl-tls_1.7.16-1+fa1_arm64.deb   

## During auto-upgrades, the version of tcl-tls we have built (1.7.16-1+fa1) may
## be replaced by the version in repository (1.7.16-1). To prevent this, 
## mark tcl-tls on hold by following command

$ sudo apt-mark hold tcl-tls  
tcl-tls set on hold.

3.3 - Clone piaware source code, build and install Piaware package.

$ cd ~/  
$ git clone http://github.com/flightaware/piaware_builder    
$ cd piaware_builder   
$ sudo ./sensible-build.sh buster   
$ cd package-buster   

$ sudo dpkg-buildpackage -b --no-sign   
$ cd ../   
$ sudo dpkg -i piaware_3.8.1_arm64.deb   

cd ~/

3.4 - Configure Piaware

$ sudo piaware-config feeder-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  

$ sudo piaware-config allow-auto-updates yes  
$ sudo piaware-config allow-manual-updates yes  

$ sudo systemctl restart piaware   

 

4 - DUMP978-FA (For USA only. Not required in other countries)

4.1 - Install dump978-fa dependencies:

$ sudo apt install libboost-system-dev libboost-program-options-dev 
$ sudo apt install libboost-regex-dev libboost-filesystem-dev 
$ sudo apt install libsoapysdr-dev lighttpd 

4.2 - Clone source code, build and install dump1090-fa package

$ cd ~/
$ git clone https://github.com/flightaware/dump978.git  
$ cd dump978  
$ sudo dpkg-buildpackage -b  

$ cd ../  
$ sudo dpkg -i dump978-fa_3.8.1_arm64.deb  

$ sudo dpkg -i skyaware978_3.8.1_arm64.deb  

4.3 - Configure

4.3.1 - Serialize dongles: (CLICK HERE)

4.3.2 - configure dump1090 and dump978

$ sudo piaware-config uat-receiver-type sdr 
$ sudo sed -i 's/--device-index 0/--device-index 00001090/' /etc/default/dump1090-fa 
$ sudo sed -i 's/driver=rtlsdr/driver=rtlsdr,serial=00000978/' /etc/default/dump978-fa 

# Reboot Pi to implement configuration settings
sudo reboot

4.4 - Check Status

$ sudo systemctl status dump978-fa 

4.5 - Check dump978 Map
In browser go to this address:
IP-of-Pi//skyaware978/

 

image

 

image

 

image

 

image

4 Likes

AUTOMATED INSTALL SCRIPT

For those who do not want to build and install manually as per Post #1 above, can use the automated install script at Github.

The script at Github does following:

  1. Installs required dependencies using apt-get command.
  2. It does NOT build dump1090-fa, tcl-tls, and piaware packages. Instead, it downloads & installs dump1090-fa, tcl-tls, and piaware packages which I have built on my RPi and uploaded to Github.
  3. It stores the pre-built packages it downloads from Github in user’s RPi in /home/pi/dump1090-fa-pkg and /home/pi/piaware-pkg folders for any future use.

https://github.com/abcd567a/piaware-64bit-raspbian/blob/master/README.md

 

 

 

 

 

 

 

 

2 Likes

Thanks, @abcd567! I hadn’t looked at the 64-bit advantages yet, but for my radio Pi, it looks just the ticket. And there’s now an 8GB Pi 4 to boot.

I guess the Pi’s were starting to lag a bit on software being 32-bit in a now 64-bit world. It looks like both Pi 3 and 4 are 64-bit CPUs too.

Found this as I was looking at the pros/cons and it includes where the 8GB model shines.

1 Like

@Coooogz posted about it earlier in the week.

New 8GB Raspberry Pi 4 - #34 by Dxista

2 Likes

Thanks for the hard work @abcd567

Guess not knowing much about the world of Pi etc. and in need of enlightenment, we now have a nice new shiny 64bit OS to play with. I was wondering if Dump1090-fa and Piaware if compiled on a 64bit OS now run as 64bit applications or are still running as 32bit applications running on a 64bit OS?

Thanks

1 Like

The 64 bit Raspbian supports both arm64 and armhf architectures.


$ dpkg --print-architecture
arm64

$ dpkg --print-foreign-architectures
armhf

The packages built from source code (by method in post #1) have their architecture (arm64) in their names.

dump1090-fa_3.8.1_arm64.deb  

tcl-tls_1.7.16-1+fa1_arm64.deb   

piaware_3.8.1_arm64.deb   

DUMP1090-FA

package built on 64bit Raspbian (post #1)

$ dpkg --info dump1090-fa_3.8.1_arm64.deb  

 new Debian package, version 2.0.
 size 1946764 bytes: control archive=15216 bytes.
     133 bytes,     3 lines      conffiles                 647 bytes,    17 lines      control                 44131 bytes,   553 lines      md5sums                  4278 bytes,   118 lines   *  postinst             
#!/bin/bash
    2463 bytes,    88 lines   *  postrm               
#!/bin/sh
     371 bytes,    12 lines   *  prerm                
#!/bin/sh
 Package: dump1090-fa
 Version: 3.8.1
 Architecture: arm64
 Maintainer: Oliver Jowett <oliver@mutability.co.uk>
 Installed-Size: 10445
 Depends: libbladerf1 (>= 0.2016.06), libc6 (>= 2.17), libncurses6 (>= 6), librtlsdr0, libtinfo6 (>= 6), adduser, lighttpd
 Breaks: dump1090 (<< 3.0)
 Replaces: dump1090 (<< 3.0)
 Section: embedded
 Priority: extra
 Homepage: http://www.flightaware.com/
 Description: ADS-B Ground Station System for RTL-SDR
  Networked Aviation Mode S / ADS-B decoder/translator with RTL-SDR software
  defined radio USB device support.
  .
  This is FlightAware's fork of dump1090-mutability, customized for use
  in the PiAware sdcard images.

 

PIAWARE

package built on 64bit Raspbian (post #1)

$ dpkg --info piaware_3.8.1_arm64.deb 

 new Debian package, version 2.0.
 size 3133168 bytes: control archive=10312 bytes.
     114 bytes,     5 lines      conffiles                 881 bytes,    14 lines      control                 22798 bytes,   280 lines      md5sums                  7256 bytes,   211 lines   *  postinst             

#!/bin/sh
    2230 bytes,    79 lines   *  postrm              
#!/bin/sh
    1905 bytes,    65 lines   *  prerm                
#!/bin/sh
      26 bytes,     1 lines      shlibs                     67 bytes,     2 lines      triggers              Package: piaware
 Version: 3.8.1
 Architecture: arm64
 Maintainer: FlightAware Developers <adsb-devs@flightaware.com>
 Installed-Size: 9600
 Depends: libboost-filesystem1.67.0, libboost-program-options1.67.0, libboost-regex1.67.0 (>= 1.67.0-10), libboost-system1.67.0, libbz2-1.0, libc6 (>= 2.28), libexpat1 (>= 2.1~beta3), libgcc1 (>= 1:3.0), liblzma5 (>= 5.1.1alpha+20120614), libreadline7 (>= 7.0~beta), libssl1.1 (>= 1.1.1), libstdc++6 (>= 5.2), libtcl8.6 (>= 8.6.0), zlib1g (>= 1:1.2.0), net-tools, iproute2, tclx8.4, tcl8.6, tcllib, tcl-tls (>= 1.7.16-1+fa1), itcl3
 Suggests: dump1090-fa, dump978-fa
 Conflicts: fa-mlat-client
 Replaces: fa-mlat-client
 Section: embedded
 Priority: extra
 Homepage: https://github.com/flightaware
 Description: Open Aviation Data Exchange Protocol for ADS-B FlightFeeders
   The client-side portion of fa_adept that sends aviation data via TCL sockets.

1 Like

There aren’t really any reasons to run the 64 bit flavor besides supporting more than 4 GB of RAM.
If there are i’m not aware of them.

The Tom’s Hardware link I posted gives a few examples where 64 bits is advantageous. For most people you are probably right - no real reason to upgrade. But there are reasons that may be important for some. There’s a comment there that some software is losing or has lost support for 32-bit versions though I would assume one could always compile from source. Not as much an issue for 1, 2, and 4 GB Pi 4’s, but 64 bits lets applications have more memory if they need it as well as apparently giving faster memory access in some circumstances. If I had an 8GB Pi 4 (DigiKey has them if anyone is looking for them - $75) I’d definitely load 64-bit Raspbian.

I run a Pi 3B+ for PiAware and even though it is 64 bit CPU, there’s no reason for me to reinstall Raspbian to get 64 bits on that. It’s cool that I could if a reason appears, though. Even my current desktop radio Pi (a 4 GB Pi 4) doesn’t really have a need, at least at this time. But if you look up 32-bit Linux, the hits are all “lightweight distros for old computers”. One day we’ll need to go there.

aarch32/aarch64 is quite a different situation to x86 / x86_64, though. It’s not just “wider pointers”.

3 Likes

For those who are feeding multiple sites:

 
(1) To install FlightRadar24’s fr24feed (armhf) on 64bit Raspbian, just run their bash script.

$ sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"

 
(2) To install Planefinder’s pfclient (armhf) on 64bit Raspbian, simply install their armhf client.

$ wget http://client.planefinder.net/pfclient_4.1.1_armhf.deb  

$ sudo dpkg -i pfclient_4.1.1_armhf.deb

 
(3) The RadarBox24’s rbfeeder (armhf) FAILS to install on 64bit Raspbian.

$ sudo bash -c "$(wget -O - http://apt.rb24.com/inst_rbfeeder.sh)"

 
It requires that following dependencies must be installed first.

sudo apt install libssl1.1:armhf libkrb5-3:armhf libcurl3-gnutls:armhf  

 
After issuing above command, get following error message:

The following packages have unmet dependencies:
 tcl-tls : Depends: libssl1.1 (>= 1.1.0) but it is not going to be installed 
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

 
I think the reason is that I have used following command during installation, in order to prevent repo to replace tcl-tls rebuilt version (1.7.16-1+fa1) by one from repository (1.7.16-1):

$ sudo apt-mark hold tcl-tls

CAUTION: Do NOT install libssl1.1:armhf manually on 64 bit Raspbian.

I attempted it, and when it’s install command executed, it also uninstalled about 450 arm64 packages (including python3, piaware, dump1090-fa, lighttpd, and many others) which destroyed my system.

Installed ModeSMixer2 on 64bit Raspbian using bash script given here:

mm2/README.md at master · abcd567a/mm2 · GitHub

However ModeSMixer2 failed as armhf versions of files libssl.so.1.1 and libcrypto.so.1.1 are missing (only arm64 versions of these files are available).

Tried to install missing armhf versions of above two files by installing libssl1.1:armhf package by following command:

sudo apt install libssl1.1:armhf 

Execution of above command resulted in replacement of about 450 packages:arm64 by packages:armhf, and the system collapsed (Do not attempt it).

Solved it by following workaround.


$ wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1d-0+deb10u3_armhf.deb    

$ sudo mkdir libssl  
$ sudo dpkg -x libssl1.1_1.1.1d-0+deb10u3_armhf.deb libssl    

$ sudo cp libssl/usr/lib/arm-linux-gnueabihf/libssl.so.1.1 /usr/lib/arm-linux-gnueabihf/   
$ sudo cp libssl/usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1 /usr/lib/arm-linux-gnueabihf/  

$ sudo systemctl restart mm2  

 

After above workaround, ModeSMixer2 started working OK. :slight_smile:

 

 

1 Like

Recently Raspberry Pi foundation has changed names of their OS from “Raspbian” to “Raspberry Pi OS”

Current names are:

  • Raspberry Pi OS (32 bit)
  • Raspberry Pi OS (64 bit)
  • Raspberry Pi Desktop (note: this one is for x86 machines, and not for Raspberry Pi as the false impression given by its name).

 

1 Like

Thanks to @sergsero for advising yesterday that he has now made available the 64bit version of modesmixer2 (modesmixer2_64bit_rpi4_Raspberry_Pi_OS_20200426.tgz).

https://radarspotting.com/forum/inde…html#msg46980

Today I have added to my Github page, a bash script for automated installation of 64bit modesmixer2 on RPi4 running 64bit Raspberry Pi OS.

Automated Installation Script:

sudo bash -c "$(wget -O - https://raw.githubusercontent.com/abcd567a/mm2/master/install-mm2-64bit.sh)"

Instructions at Github:
https://github.com/abcd567a/mm2/blob/master/README.md

INSTALLED & CHECKED

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.4.42-v8+ #1319 SMP PREEMPT Wed May 20 14:18:56 BST 2020 aarch64 GNU/Linux

 

pi@raspberrypi:/usr/share/mm2 $ ls
LICENSE.MIT mm2.conf mm2.sh modesmixer2 modesmixer2_64bit_rpi4_Raspberry_Pi_OS_20200426.tgz modesmixer2.txt
 

pi@raspberrypi:/usr/share/mm2 $ file modesmixer2
modesmixer2: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=22eaa58312b649b379d00647b4c1e98c8102b046, stripped

 

pi@raspberrypi:/usr/share/mm2 $ ldd modesmixer2 
       linux-vdso.so.1 (0x0000007f8a282000)
        libssl.so.1.1 => /usr/lib/aarch64-linux-gnu/libssl.so.1.1 (0x0000007f89def000)
        libcrypto.so.1.1 => /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1 (0x0000007f89b47000)
        libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007f89b18000)
        librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000007f89b00000)
        libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000007f89aec000)
        libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000007f89961000)
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f898a4000)
        libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000007f89880000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f8970e000)
        /lib/ld-linux-aarch64.so.1 (0x0000007f8a254000)

pi@raspberrypi:~ $ sudo systemctl status mm2
● mm2.service - ModeSMixer2
   Loaded: loaded (/lib/systemd/system/mm2.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-06-06 19:11:56 BST; 2h 56min ago
 Main PID: 1008 (bash)
    Tasks: 5 (limit: 787)
   CGroup: /system.slice/mm2.service
           ├─1008 /bin/bash /usr/share/mm2/mm2.sh
           └─1009 /usr/share/mm2/modesmixer2 --inConnectId 127.0.0.1:30005:ADSB --inConnectId 127.0.0.1:30105:MLAT --web 8787 --location 43.5801:

Jun 06 19:26:15 raspberrypi modesmixer2[1008]: 2020-06-06 19:26:15.607  INFO     inConnectId(127.0.0.1:30105:MLAT) connecting 127.0.0.1:30105
Jun 06 19:26:15 raspberrypi modesmixer2[1008]: 2020-06-06 19:26:15.610  INFO     inConnectId(127.0.0.1:30105:MLAT) connected
Jun 06 19:26:17 raspberrypi modesmixer2[1008]: 2020-06-06 19:26:17.140  INFO     inConnectId(127.0.0.1:30005:ADSB) connecting 127.0.0.1:30005
Jun 06 19:26:17 raspberrypi modesmixer2[1008]: 2020-06-06 19:26:17.141  INFO     inConnectId(127.0.0.1:30005:ADSB) connected
Jun 06 19:26:17 raspberrypi modesmixer2[1008]: 2020-06-06 19:26:17.589  INFO     inConnectId(127.0.0.1:30005:ADSB) BEAST data stream detected
Jun 06 19:26:20 raspberrypi modesmixer2[1008]: 2020-06-06 19:26:20.866  INFO     Coverage area was determined
Jun 06 19:26:20 raspberrypi modesmixer2[1008]: 2020-06-06 19:26:20.866  INFO     Magnetic declination calculated
Jun 06 19:27:39 raspberrypi modesmixer2[1008]: 2020-06-06 19:27:39.560  INFO     inConnectId(127.0.0.1:30105:MLAT) BEAST data stream detected
Jun 06 19:28:41 raspberrypi modesmixer2[1008]: 2020-06-06 19:28:41.668  INFO     Coverage area was determined
Jun 06 19:28:41 raspberrypi modesmixer2[1008]: 2020-06-06 19:28:41.668  INFO     Magnetic declination calculated
2 Likes

Thanks!
Worked like charm.
Might want to mention how to add support for a separate UAT feed input too.

Thanks this Is easy. This is useful. I’m going to try it.

OK, added installation of (1) dump978-fa and (2) skyaware978

Please see this new item of first post:

4 - DUMP978-FA (For USA only. Not required in other countries)

1 Like

Cool.
The 978 feed can be added to ModeSMixer2 as well :slight_smile:

I also believed so, but both Oliver Jowett (@obj), author of dump1090-fa and piaware, and Segsero (@sergsero), author of ModeSMixer2, have confirmed it is not feasible.

Please read this thread complete (from first post to the last post)

Feed 1090ES + 978UAT to Different Sites

 

(1) Today uploaded to Github following packages which I have built on Pi4 / 64bit RaspberryPi OS

  • dump978-fa_3.8.1_arm64.deb
  • skyaware978_3.8.1_arm64.deb

Following packages were already built by me and uploaded to Github when this repository was created about two weeks ago:

  • dump1090-fa_3.8.1_arm64.deb
  • tcl-tls_1.7.16-1+fa1_arm64.deb
  • piaware_3.8.1_arm64.deb

(2) Today in Github, added:

  • bash script for automated installation of dum978-fa + skyaware978
  • Step-by-step method to Serialize dongles.

Bash script for installation of dump1090-fa and piaware were already added when this repository was created about two weeks ago.

(3) In Github, added steps to manually built dump1090-fa, piaware, & dump978-fa from source code.

https://github.com/abcd567a/piaware-64bit-raspbian/blob/master/README.md

 

 

2 Likes