Howto Install dump1090-fa on FEDORA and RHEL x86_64

Got stuck with piaware again :frowning: :cry:

(1) Successfully build and installed following from source-code:

  • tcl
  • tclx
  • tcllauncher

(2) Build piaware from source code.

(3) Tested piaware, found it requires tls .
Checked, found tcl is already installed.
What a mess :frowning:

[abcd@localhost ~]$ piaware
can't find package tls
    while executing
"package require tls"
    (file "/usr/lib/piaware_packages/piaware.tcl" line 9)
    invoked from within
"source /usr/lib/piaware_packages/piaware.tcl"
    ("package ifneeded piaware 1.0" script)
    invoked from within
"package require piaware"
    (file "/usr/lib/piaware/main.tcl" line 10)
    invoked from within
"source /usr/lib/piaware/main.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 source $path"
    from tcllauncher running "piaware"

 

[abcd@localhost ~]$ sudo dnf install tcl
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - BaseOS  6.5 kB/s | 4.1 kB     00:00
Red Hat Enterprise Linux 8 for x86_64 - AppStre 8.4 kB/s | 4.5 kB     00:00
Package tcl-1:8.6.8-2.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

 

[abcd@localhost ~]$ sudo dnf install tls
[sudo] password for abcd:
Updating Subscription Management repositories.
Last metadata expiration check: 0:28:35 ago on Mon 17 Feb 2020 03:35:01 PM EST.
No match for argument: tls
Error: Unable to find a match: tls

Tried to build tcltls from source-code, failed, wants openssl:

$ wget https://core.tcl-lang.org/tcltls/uv/tcltls-1.7.20.tar.gz 
$ sudo tar zxvf tcltls-1.7.20.tar.gz  
$ cd tcltls-1.7.20  
$ sudo ./configure  
... ... ...
... ... ...
checking which TLS library to use... openssl
Package openssl was not found in the pkg-config search path.
Perhaps you should add the directory containing `openssl.pc'
to the PKG_CONFIG_PATH environment variable
Package 'openssl', required by 'virtual:world', not found
configure: error: Unable to get OpenSSL Configuration
[abcd@localhost tcltls-1.7.20]$ sudo make
make: *** No targets specified and no makefile found.  Stop.

 

Checked openssl, found it is already installed:

[abcd@localhost ~]$ sudo dnf install openssl

Updating Subscription Management repositories.
Last metadata expiration check: 0:27:46 ago on Mon 17 Feb 2020 03:05:51 PM EST.
Package openssl-1:1.1.1c-2.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

:cry: :angry: :rage:

Part of the problem is that Tcl packages built from source are not automatically linked to the RPM based Tcl8.6 install, so you have link them in manually. I am working on a Rocky Linux installer, but until I am done these instructions should be sufficient to get anyone on an RPM based system going. I have only tested them on Rocky Linux 9.2, so things may vary on other RPM based systems.

Install the following RPM packages via yum or dnf:

autoconf
cmake
epel-release
libusbx-devel
lighttpd
ncurses-devel
net-tools
openssl-devel
openssl-perl
python3-devel
systemd-devel
tcl
tcl-devel
tcllib
tcltls

The rest has to be built and installed manually. First start with rtl-sdr, and then move on to dump1090-fa.

Look in the debian subdirectories of the dump1090 and rtl-sdr repositories for clues on how things are expected to land. The faup1090 binary is not built automatically when you build dump1090, so you have to run make faup1090 manually.

Install tclx:

git clone https://github.com/flightaware/tclx.git
cd tclx
./configure                                                               
make                                                                      
sudo make install                                                         
sudo ln -s /usr/lib/tclx8.6 /usr/share/tcl8.6
cd ..

Install tcllauncher:

git clone https://github.com/flightaware/tcllauncher.git
cd tcllauncher             
autoconf                                                                  
./configure --prefix=/opt/tcl                                             
make                                                                      
sudo make install                                                         
sudo ln -s /usr/lib/Tcllauncher1.10 /usr/share/tcl8.6
cd ..

Install itcl:

git clone https://github.com/tcltk/itcl.git
cd itcl
./configure                                                               
make all                                                                  
make test                                                                 
ln -s itclWidget/tclconfig tclconfig                                      
sudo make install                                                         
sudo ln -s /usr/lib/itcl4.2.3 /usr/share/tcl8.6
cd ..

Install mlat-client:

git clone https://github.com/mutability/mlat-client.git
cd mlat-client                   
./setup.py build                                                          
./setup.py install
cd ..

Install piaware:

git clone https://github.com/flightaware/piaware.git
cd piaware
sudo make install
sudo ln -s /usr/lib/piaware_packages /usr/share/tcl8.6
sudo ln -s /usr/lib/fa_adept_codec /usr/share/tcl8.6
sudo ln -s /usr/bin/faup1090-fa /usr/lib/piaware/helpers/faup1090         
sudo ln -s /usr/local/bin/fa-mlat-client /usr/lib/piaware/helpers
sudo systemctl enable piaware
sudo systemctl enable generate-pirehose-cert.service
NAME=piaware
RUNAS=piaware
if ! getent passwd "$RUNAS" >/dev/null; then
    sudo adduser --system --home /usr/lib/$NAME --no-create-home "$RUNAS"
fi
sudo mkdir -p /var/cache/piaware
sudo chown piaware:piaware /var/cache/piaware
sudo touch /etc/piaware.conf
sudo chown piaware:piaware /etc/piaware.conf
sudo piaware-config allow-mlat yes
cd ..
1 Like

Thank you @chuckwolber :+1:
I will give it a try.

@obj
@eric1tran

Last week I built and installed dump1090-fa and piaware from source-code on Fedora-37
Both working and feeding data to Flightaware successfully.

[abcd@fedora-37 ~]$ pgrep dump1090 -l
779 dump1090-fa

Noted following strange messages in Piaware log:
(1) sudo required
(1) dump1090-fa is shown as “unknown process”

Any idea what I missed or did wrong? Thank you in advance.

[abcd@fedora-37 ~]$ sudo journalctl -u piaware -b
Feb 17 09:13:47 fedora-37 piaware[889]: FlightAware server certificate validated
Feb 17 09:13:47 fedora-37 piaware[889]: encrypted session established with FlightAware
Feb 17 09:13:49 fedora-37 piaware[1013]: sudo: a password is required
Feb 17 09:13:49 fedora-37 piaware[889]: ADS-B data program 'unknown process' is listening on port 30005>
Feb 17 09:13:49 fedora-37 piaware[889]: Starting faup1090: /usr/lib/piaware/helpers/faup1090 --net-bo-i>
Feb 17 09:13:50 fedora-37 piaware[889]: Started faup1090 (pid 1021) to connect to unknown process

 

When I checked logs on Rapberry Pi, I got following:

Feb 17 09:27:56 raspi-1 sudo[1451]:  piaware : PWD=/ ; USER=root ; COMMAND=/bin/netstat --pr>
Feb 17 09:27:56 raspi-1 sudo[1451]: pam_unix(sudo:session): session opened for user root(uid>
Feb 17 09:27:56 raspi-1 sudo[1451]: pam_unix(sudo:session): session closed for user root
Feb 17 09:27:56 raspi-1 piaware[1061]: Starting multilateration client: /usr/lib/piaware/hel>
Feb 17 09:27:56 raspi-1 sudo[1472]:  piaware : PWD=/ ; USER=root ; COMMAND=/bin/netstat --pr>
Feb 17 09:27:56 raspi-1 sudo[1472]: pam_unix(sudo:session): session opened for user root(uid>
Feb 17 09:27:56 raspi-1 sudo[1472]: pam_unix(sudo:session): session closed for user root
Feb 17 09:27:56 raspi-1 piaware[1061]: ADS-B data program 'dump1090-fa' is listening on port>
Feb 17 09:27:56 raspi-1 piaware[1061]: Starting faup1090: /usr/lib/piaware/helpers/faup1090 >

 

EDIT: [SOLVED]

Have missed following command. After issueing it and rebooting, both issues were fixed :slight_smile:

[abcd@fedora-37 piaware]$ sudo install -Dm440 etc/piaware.sudoers /etc/sudoers.d/piaware

[abcd@fedora-37 piaware]$ sudo reboot

 

[abcd@fedora-37 ~]$ sudo journalctl -u piaware -b
Feb 17 10:35:35 fedora-37 sudo[1470]:  piaware : PWD=/ ; USER=root ; COMMAND=/bin/netstat -->
Feb 17 10:35:35 fedora-37 piaware[875]: ADS-B data program 'dump1090-fa' is listening on por>
Feb 17 10:35:35 fedora-37 piaware[875]: Starting faup1090: /usr/lib/piaware/helpers/faup1090>
Feb 17 10:35:35 fedora-37 piaware[875]: Started faup1090 (pid 1501) to connect to dump1090-fa
Feb 17 10:35:35 fedora-37 sudo[1505]:  piaware : PWD=/ ; USER=root ; COMMAND=/bin/netstat -->
Feb 17 10:35:36 fedora-37 piaware[875]: Starting multilateration client: /usr/lib/piaware/he>
Feb 17 10:35:36 fedora-37 piaware[875]: mlat-client(1510): fa-mlat-client 0.2.13 starting up