FlightAware Discussions

Howto Install Piaware ver 3.8.0 on OrangePiPC / Armbian Buster

Piaware ver 3.8.0 on Armbian Buster / OrangePiPC

Piaware, dump1090-fa & dump978-fa SUCCESSFULLY Built from Source Code

SYSTEM INFO

pi@orangepipc:~$ uname -a
Linux orangepipc 5.3.9-sunxi #19.11.3 SMP Mon Nov 18 18:49:43 CET 2019 armv7l GNU/Linux

pi@orangepipc:~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"

.

1 - PIAWARE

1.1 - Install the build tools & dependencies

sudo apt install debhelper tcl8.6-dev python3-dev python3-venv libz-dev  
sudo apt install dh-systemd libboost-system-dev libboost-program-options-dev  
sudo apt install libboost-regex-dev libboost-filesystem-dev  

sudo apt install tcl tclx8.4 tcllib tcl-tls itcl3  

.

1.2 - Clone sorce code, build piaware package, and install it

git clone https://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.0_armhf.deb  

.

2 - DUMP1090-FA

2.1 - Install the build tools & dependencies

sudo apt install libfam0 lighttpd librtlsdr-dev libusb-1.0-0-dev
sudo apt install pkg-config libncurses5-dev libbladerf-dev   

.

2.2 - Clone sorce code, build piaware package, and install it

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

cd ../
sudo dpkg -i dump1090-fa_3.8.0_armhf.deb


.

3 - DUMP978-FA

3.1 - Install the build tools & dependencies

sudo apt install libsoapysdr-dev libsoapysdr0.6 soapysdr-module-rtlsdr

.

3.2 - Clone sorce code, build piaware package, and install it

git clone https://github.com/flightaware/dump978 dump978-fa  
cd dump978-fa  
sudo dpkg-buildpackage -b --no-sign

cd ../
sudo dpkg -i dump978-fa_3.8.0_armhf.deb  
sudo dpkg -i skyaware978_3.8.0_armhf.deb  

.

3.3 - Configuration

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
sudo reboot  

.

STATUS

dump978-fa

pi@orangepipc:~$ sudo systemctl status dump978-fa
● dump978-fa.service - dump978 ADS-B UAT receiver
   Loaded: loaded (/lib/systemd/system/dump978-fa.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-01-05 03:35:55 EST; 12min ago
     Docs: https://flightaware.com/adsb/piaware/
 Main PID: 2662 (dump978-fa)
    Tasks: 4 (limit: 2068)
   Memory: 10.4M
   CGroup: /system.slice/dump978-fa.service
           └─2662 /usr/bin/dump978-fa --sdr driver=rtlsdr,serial=00000978 --format CS8 --raw-port 30978 --json-port 30979

Jan 05 03:35:56 orangepipc dump978-fa[2662]: Detached kernel driver
Jan 05 03:35:56 orangepipc dump978-fa[2662]: Found Rafael Micro R820T tuner
Jan 05 03:35:56 orangepipc dump978-fa[2662]: Exact sample rate is: 2083333.135571 Hz
Jan 05 03:35:56 orangepipc dump978-fa[2662]: [R82XX] PLL not locked!
Jan 05 03:35:57 orangepipc dump978-fa[2662]: SoapySDR: using maximum manual gain 49.6 dB
Jan 05 03:35:57 orangepipc dump978-fa[2662]: SoapySDR: using stream setting buffsize=262144
Jan 05 03:35:57 orangepipc dump978-fa[2662]: Allocating 15 zero-copy buffers
Jan 05 03:35:57 orangepipc dump978-fa[2662]: Detected Kernel usbfs mmap() bug, falling back to buffers in userspace
Jan 05 03:36:08 orangepipc dump978-fa[2662]: [::]:30978: accepted a connection from [::1]:52992
Jan 05 03:37:04 orangepipc dump978-fa[2662]: [::]:30978: accepted a connection from [::1]:52998

.

Piaware

pi@orangepipc:~$ sudo systemctl status piaware
● piaware.service - FlightAware ADS-B uploader
   Loaded: loaded (/lib/systemd/system/piaware.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-01-05 03:37:00 EST; 12min ago
     Docs: https://flightaware.com/adsb/piaware/
 Main PID: 2694 (piaware)
    Tasks: 6 (limit: 2068)
   Memory: 13.0M
   CGroup: /system.slice/piaware.service
           ├─2694 /usr/bin/piaware -p /run/piaware/piaware.pid -plainlog -statusfile /run/piaware/status.json
           ├─2706 /usr/lib/piaware/helpers/fa-mlat-client --input-connect localhost:30005 --input-type dump1090 --results beast,connect,localh
           ├─2709 /usr/lib/piaware/helpers/faup1090 --net-bo-ipaddr localhost --net-bo-port 30005 --stdout --lat 43.xxx --lon -79.xxx
           └─2712 /usr/lib/piaware/helpers/faup978 --connect localhost:30978

Jan 05 03:37:04 orangepipc piaware[2694]: faup978(2712): Connected to [::1]:30978
Jan 05 03:37:04 orangepipc piaware[2694]: piaware received a message from dump1090-fa!
Jan 05 03:37:04 orangepipc piaware[2694]: mlat-client(2706): Beast-format results connection with ::1:30104: connection established
Jan 05 03:37:13 orangepipc piaware[2694]: piaware has successfully sent several msgs to FlightAware!
Jan 05 03:37:35 orangepipc piaware[2694]: 13 msgs recv'd from dump1090-fa; 13 msgs sent to FlightAware
Jan 05 03:37:35 orangepipc piaware[2694]: 0 msgs recv'd from dump978-fa; 0 msgs sent to FlightAware
Jan 05 03:42:35 orangepipc piaware[2694]: 132 msgs recv'd from dump1090-fa (119 in last 5m); 132 msgs sent to FlightAware
Jan 05 03:42:35 orangepipc piaware[2694]: 0 msgs recv'd from dump978-fa (0 in last 5m); 0 msgs sent to FlightAware
Jan 05 03:47:35 orangepipc piaware[2694]: 262 msgs recv'd from dump1090-fa (130 in last 5m); 262 msgs sent to FlightAware
Jan 05 03:47:35 orangepipc piaware[2694]: 0 msgs recv'd from dump978-fa (0 in last 5m); 0 msgs sent to FlightAware

.

dump1090-fa

pi@orangepipc:~$ sudo systemctl status dump1090-fa
● dump1090-fa.service - dump1090 ADS-B receiver (FlightAware customization)
   Loaded: loaded (/lib/systemd/system/dump1090-fa.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-01-05 02:26:51 EST; 1h 23min ago
     Docs: https://flightaware.com/adsb/piaware/
 Main PID: 1348 (dump1090-fa)
    Tasks: 3 (limit: 2068)
   Memory: 7.3M
   CGroup: /system.slice/dump1090-fa.service
           └─1348 /usr/bin/dump1090-fa --device-index 00001090 --gain -10 --ppm 0 --max-range 360 --fix --net --net-heartbeat 60 --net-ro-size

Jan 05 02:26:51 orangepipc systemd[1]: Started dump1090 ADS-B receiver (FlightAware customization).
Jan 05 02:26:51 orangepipc dump1090-fa[1348]: Sun Jan  5 02:26:51 2020 EST  dump1090-fa 3.8.0 starting up.
Jan 05 02:26:51 orangepipc dump1090-fa[1348]: rtlsdr: using device #1: Generic RTL2832U (Realtek, RTL2832U, SN 00001090)
Jan 05 02:26:51 orangepipc dump1090-fa[1348]: Detached kernel driver
Jan 05 02:26:52 orangepipc dump1090-fa[1348]: Found Rafael Micro R820T tuner
Jan 05 02:26:52 orangepipc dump1090-fa[1348]: rtlsdr: enabling tuner AGC
Jan 05 02:26:52 orangepipc dump1090-fa[1348]: Allocating 4 zero-copy buffers
Jan 05 02:26:52 orangepipc dump1090-fa[1348]: Detected Kernel usbfs mmap() bug, falling back to buffers in userspace

you need the rtl-sdr module as well.

Anyhow i’d always just compile for the system in question instead of jumping through dependency hoops.

That was the very first thing I did immediately after first boot (to check serial numbers of dongles by rtl_test -t)

.

That is what I am finally going to do.
What I did above was just an adventure, and I expected failure :wink:
NOTE: All the dependencies I installed manually are from STRETCH

Nope, the soapy-sdr module for rtl-sdr.
Check the last thread where it wasnt’ working for the name.

Why did you install the Stretch repository package on a Buster system? That’s the wrong thing to do, you shouldn’t do that and it’s probably the cause of your dependency problems.

OK, I will reimage and try to build from source code without manually installing dependencies.

Meanwhile I built dump978-fa from source code, but again got exactly same problem.
ExecStart=/usr/share/dump978-fa/start-dump978-fa (code=exited, status=2)

Configuration error: No matching SoapySDR device found (cause:SoapySDR::Device::make() no match)

.

Next did this. Shows modules and Factory missing

pi@orangepipc:~$ sudo apt-get install soapysdr-tools

pi@orangepipc:~$ SoapySDRUtil --info
######################################################
## Soapy SDR -- the SDR abstraction library
######################################################

Lib Version: v0.6.1-4+b1
API Version: v0.6.0
ABI Version: v0.6
Install root: /usr
Search path: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.6
Search path: /usr/local/lib/arm-linux-gnueabihf/SoapySDR/modules0.6
Search path: /usr/local/lib/SoapySDR/modules0.6
No modules found!
Loading modules... done
Available factories...null,

`

You don’t have the soapysdr rtlsdr module installed, as @wiedehopf said.

I would also point out that installing random packages from an older version of a distribution via dpkg is a bad idea and it will cause you problems later; you’re basically bypassing most of the package manager by doing this. I would not suggest doing that, especially not in a form where it’s likely to be blindly followed by others who don’t have knowledge about what the individual steps are doing.

Build for the target distribution from source. The binary packages we provide are specifically for Raspbian.

4 Likes
pi@orangepipc:~$ sudo apt-get install SoapyRTLSDR
[sudo] password for pi:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package SoapyRTLSDR

Look, I can only hold your hand so much here. That’s the wrong package name and wouldn’t have worked on a Raspbian system either. Here’s a hint:

pi@piaware:~ $ apt-cache search rtlsdr
gr-osmosdr - Gnuradio blocks from the OsmoSDR project
librtlsdr-dev - Software defined radio receiver for Realtek RTL2832U (development)
librtlsdr0 - Software defined radio receiver for Realtek RTL2832U (library)
soapysdr-module-rtlsdr - RTL-SDR device support for SoapySDR (default version)
soapysdr0.6-module-rtlsdr - RTL-SDR device support for SoapySDR
librtlsdr0-dbgsym - debug symbols for librtlsdr0
4 Likes

THANK YOU :+1:

pi@orangepipc:~$ sudo apt-get install soapysdr-module-rtlsdr

pi@orangepipc:~$ sudo systemctl status dump978-fa
● dump978-fa.service - dump978 ADS-B UAT receiver
   Loaded: loaded (/lib/systemd/system/dump978-fa.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-01-05 00:26:56 EST; 2min 17s ago
     Docs: https://flightaware.com/adsb/piaware/
 Main PID: 2138 (dump978-fa)
    Tasks: 4 (limit: 2068)
   Memory: 11.2M
   CGroup: /system.slice/dump978-fa.service
           └─2138 /usr/bin/dump978-fa --sdr driver=rtlsdr,serial=00000978 --format CS8 --raw-port 30978 -

Jan 05 00:26:57 orangepipc dump978-fa[2138]: usb_claim_interface error -6
Jan 05 00:26:57 orangepipc dump978-fa[2138]: Detached kernel driver
Jan 05 00:26:58 orangepipc dump978-fa[2138]: Found Rafael Micro R820T tuner
Jan 05 00:26:58 orangepipc dump978-fa[2138]: Exact sample rate is: 2083333.135571 Hz
Jan 05 00:26:58 orangepipc dump978-fa[2138]: [R82XX] PLL not locked!
Jan 05 00:26:58 orangepipc dump978-fa[2138]: SoapySDR: using maximum manual gain 49.6 dB
Jan 05 00:26:58 orangepipc dump978-fa[2138]: SoapySDR: using stream setting buffsize=262144
Jan 05 00:26:58 orangepipc dump978-fa[2138]: Allocating 15 zero-copy buffers
Jan 05 00:26:58 orangepipc dump978-fa[2138]: Detected Kernel usbfs mmap() bug, falling back to buffers in
Jan 05 00:27:20 orangepipc dump978-fa[2138]: [::]:30978: accepted a connection from [::1]:51032

Thanks for the guidance and advise.

I will now re-image, build everything from source code (without using Stretch packages) and record the steps.

Next I will edit 1st post of this thread, and replace the existing steps with the steps for building from source code.

Thanks again for guidance & help.

@obj
As agreed, I have now edited the 1st post of this thread, and totally replaced the non-standard method by “packages successfully built from source code” .

Thanks for your advise and guidance.

After re-imaging and installing by package built from source code (see 1st post of this thread):

pi@orangepipc:~$ sudo apt install soapysdr-tools

pi@orangepipc:~$ SoapySDRUtil --info 

######################################################
## Soapy SDR -- the SDR abstraction library
######################################################

Lib Version: v0.6.1-4+b1
API Version: v0.6.0
ABI Version: v0.6
Install root: /usr
Search path: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.6
Search path: /usr/local/lib/arm-linux-gnueabihf/SoapySDR/modules0.6
Search path: /usr/local/lib/SoapySDR/modules0.6
Module found: /usr/lib/arm-linux-gnueabihf/SoapySDR/modules0.6/librtlsdrSupport.so
Loading modules... done
Available factories...null, rtlsdr, 

.

pi@orangepipc:~$ apt-cache search rtlsdr 

librtlsdr-dev - Software defined radio receiver for Realtek RTL2832U (development)
librtlsdr0 - Software defined radio receiver for Realtek RTL2832U (library)
soapysdr-module-rtlsdr - RTL-SDR device support for SoapySDR (default version)
soapysdr0.6-module-rtlsdr - RTL-SDR device support for SoapySDR

short while ago, I finished installing ver 3.8.0 by building packages on Ubuntu Disco (19.10), and out of curiosity ran info check of soapysdr. Surprisingly, on Ubuntu there are lot more modules and lot more factories (see below) than on Armbian Buster (see my above post).

abcd@ubuntu-19:~$ sudo apt-get install soapysdr-tools

abcd@ubuntu-19:~$ SoapySDRUtil --info

######################################################
## Soapy SDR -- the SDR abstraction library
######################################################
Lib Version: v0.6.1-4
API Version: v0.6.0
ABI Version: v0.6
Install root: /usr
Search path: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6
Search path: /usr/local/lib/x86_64-linux-gnu/SoapySDR/modules0.6
Search path: /usr/local/lib/SoapySDR/modules0.6
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/libHackRFSupport.so
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/libLMS7Support.so
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/libRedPitaya.so
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/libairspySupport.so
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/libaudioSupport.so
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/libbladeRFSupport.so
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/libosmosdrSupport.so
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/libremoteSupport.so
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/librtlsdrSupport.so
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.6/libuhdSupport.so
Loading modules... done
Available factories...airspy, audio, bladerf, hackrf, lime, null, osmosdr, redpitaya, remote, rtlsdr, uhd,

.

abcd@ubuntu-19:~$ apt-cache search rtlsdr

gr-osmosdr - Gnuradio blocks from the OsmoSDR project
librtlsdr-dev - Software defined radio receiver for Realtek RTL2832U (development)
librtlsdr0 - Software defined radio receiver for Realtek RTL2832U (library)
soapysdr-module-rtlsdr - RTL-SDR device support for SoapySDR (default version)
soapysdr0.6-module-rtlsdr - RTL-SDR device support for SoapySDR

Sure, you probably installed the default “all modules” metapackage that pulls in all the device modules. The way that soapysdr is packaged, support for each different type of device is in a separate package; applications like dump978-fa only need to depend on the core library without knowing about the exact hardware that will be used, and then an appropriate device module (like the rtlsdr module) can be installed to handle the actual hardware in use.

1 Like

@abcd567

Thanks for the effort. Updated my OrangePi PC to 3.8.0 tonight with your revised instructions and it seems to be working fine.

Looks like it is 8 months since I last touched the OrangePi so need to check out what you and @wiedehopf have been writing about :smiley:

OrangePiPC is great value for money if someone wants to use it for ADS-B.

I have been using it since 2016 to feed flightaware, flightradar24, planefinder, adsbexchange, radarbox24 & opensky without any issue.

The computer board itself is US $15.
The complete Set 5 is US $28 (price $23 + shipping $5), and comprises of all what is needed:

  • Computer board
  • Power Supply 5V DC
  • Plastic case