How to feed FR24 and FlightAware on x86 Linux?

I am really impressed with the way FlightAware has built a very robust, turnkey solution in PiAware. I’ve run PiAware before and think it’s great.

However, I’m now running an RTL-SDR on my CentOS Linux dev box. This computer is used for lots of purposes and is very powerful so running an ADS-B processor in the background is not a big deal.

It’s was very easy to get FR24 (fr24feed) working with dump1090. I have a little BASH script that I built that starts them both up and they are working very well.

I want to add FlightAware to the mix, but this has turned out to be really difficult. I was hoping I could run a FlightAware feeder that would connect to my existing dump1090, but I couldn’t figure that out.

Does anyone have any advice for adding FlightAware to my existing processing?

I run CentOS 8 since I use this box for my day-job development.

I have pasted the BASH script I use below.

John

DATETIME=date +%Y-%m-%d_%a_%H-%M-%S
DUMP1090_DIR=~/radio/dump1090
FR24FEED_DIR=~/radio/fr24feed_i386

echo
echo === dump1090
pushd ${DUMP1090_DIR}
  #./dump1090 --net --interactive
  DUMP1090_LOG=/tmp/dump1090_${DATETIME}.txt
  ./dump1090 --net &> ${DUMP1090_LOG} &
  DUMP1090_PID=$!
  echo ${DUMP1090_PID} > pid.txt
  sleep 2
  ln --symbolic --force --verbose ${DUMP1090_LOG} log.txt
  tail log.txt
popd


echo
echo === fr24feed
pushd ${FR24FEED_DIR}
  FR24FEED_LOG=/tmp/fr24feed_${DATETIME}.txt
  ./fr24feed --fr24key=${FR24KEY} --receiver=avr-tcp --bind-interface=0.0.0.0 &> ${FR24FEED_LOG} &
  FR24FEED_PID=$!
  echo ${FR24FEED_PID} > pid.txt
  sleep 2
  ln --symbolic --force --verbose ${FR24FEED_LOG} log.txt
  tail log.txt
popd

Maybe this thread helps:

Seems you are using pre built Linux binary for fr24feed downloaded from respective site. Seems you built dump1090 from source code. Which version of dump1090 do you use (Malcolm Robb, Mutability, Flightaware)?

For Flightaware data feeder, there is no pre built x86 Linux binary or installation package available (except for RPi armv7). For x86 CentOS, you will have to build it using source code. I tried on Red Hat, but failed. As CentOS & Fedora are based on RedHat, this more or less applies to these also.

This is for Debian and Ubuntu (Ubuntu is debian based). This uses method to build .deb binary package using piaware_builder source code.

This method does not apply to CentOS, Fedora, and Red Hat Linux (Fedora and CentOS are based on Red Hat Linux).

Thank you very much for responding.

I compiled dump1090 from source from antirez. I didn’t realize there were multiple people distributing dump1090.

johnr@coffeelake(~/radio/dump1090) 1019$ git remote --verbose
origin GitHub - antirez/dump1090: Dump1090 is a simple Mode S decoder for RTLSDR devices (fetch)
origin GitHub - antirez/dump1090: Dump1090 is a simple Mode S decoder for RTLSDR devices (push)

I also downloaded and compiled the FlightAware version of dump1090. I was confused and thought that by using the FA version of dump1090, that I would be able to feed FA. I assumed the “feeder” software was built-in to the FA version of dump1090.

I’m surprised by how clunky the PiAware software appears under the hood. I have all the dependencies installed and am trying to build PiAware, but i’m not a TCL expert so I’m stuck.

Given what the PiAware software does, it seems like it should be straightforward to build PiAware on any Linux distribution. I wonder why they use TCL instead of Python.

If anyone can give me some tips on how to get PiAware built/running on CentOS 8, I’d appreciate it. I’ve got the SDR running to feed FR24 so it would be nice to feed the same data to FA.

Thanks,
John

I was working with this in the past without issues.

2 Likes

(1) For this method to work, one has to have a piaware_i386.deb package in hand.
Where is piaware_i386.deb package available? Flightaware repositories have only piaware_armhf.deb package.

(2) Such methods are never 100% guaranteed. It may work, it may fail, or it may work with issues.

Flightaware dont offer Linux binaries for x86 & x64 either, whereas Flightradar24 and Planefinder do offer Linux binaries.

wget http://client.planefinder.net/pfclient_4.1.1_i386.tar.gz

wget https://repo-feed.flightradar24.com/linux_x86_64_binaries/fr24feed_1.0.18-5_amd64.tgz

wget https://repo-feed.flightradar24.com/linux_x86_64_binaries/fr24feed_1.0.24-5_amd64.tgz #Gives segmentation fault. Use older ver 1.0.18-5

1 Like

Much of FlightAware’s infrastructure is built using tcl (it’s gradually changing to a wider mix of languages, but certainly at the time that piaware was originally written, there was little to no Python experience at FlightAware).

It’s very straightforward on any Debian-alike. There hasn’t been much demand for CentOS/RedHat package support. If you want to put something together, that’d be great though. piaware_builder and the contents of debian/rules are a good starting point.

2 Likes

dependencies for piaware

pi@piaware:/usr/bin $ readelf -d piaware | grep NEEDED

 0x00000001 (NEEDED)                     Shared library: [libtcl8.6.so]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x00000001 (NEEDED)                     Shared library: [ld-linux-armhf.so.3]
 
1 Like

As a software developer, TCL has been around for a long time and is relatively fast compared to python. Both work well and when speed counts, you have to use the fastest alternative you can develop with. Both have their strong points and weaknesses.

pi@piaware:/usr/bin $ file piaware
piaware: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=94a5fb4cb90a1bd184d4be2f377dbe44a42f25b7, stripped   

Probing Linux binaries of Planefinder & Radarbox24

Planrfinder, i386 Linux binary

$ wget http://client.planefinder.net/pfclient_4.1.1_i386.tar.gz

$ tar zvxf pfclient_4.1.1_i386.tar.gz

$ readelf -d pfclient | grep NEEDED  

 0x00000001 (NEEDED)   Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)   Shared library: [libm.so.6]
 0x00000001 (NEEDED)   Shared library: [librt.so.1]
 0x00000001 (NEEDED)   Shared library: [libc.so.6]

 

$ file pfclient

pfclient: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=f4824803948a0f21aab3c2161ea72f7ee4581754, with debug_info, not stripped

 

Radarbox24, amd64 Linux binary

$ wget https://repo-feed.flightradar24.com/linux_x86_64_binaries/fr24feed_1.0.18-5_amd64.tgz

$ tar xvzf fr24feed_1.0.18-5_amd64.tgz   

$ readelf -d fr24feed | grep NEEDED  

 0x0000000000000001 (NEEDED)   Shared library: [libz.so.1]
 0x0000000000000001 (NEEDED)   Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)   Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)   Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)   Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)   Shared library: [libc.so.6]

 

$ file fr24feed

fr24feed: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=e2e5f5b37c84d71d6ac5039390eca29d2b318ad4, stripped

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.