FlightAware Discussions

Error message trying to install PiAware on MX Linux

(1) You are running MX-Linux with systemd disabled, but sysVinit enabled.

(2) It seems during installation piaware detects this and installs sysVinit files for start|stop|restart|status.

(3) It also seems that dump1090-fa was unable to install sysVinit files, therefore it fails to start at boot, and also does not find commands sudo service dump1090-fa start|stop|restart|status .

You can manually create sysVinit file /etc/init.d/dump1090-fa similar to the step-by-step method for OpenSky feeder I have shown in the post linked below. However you will need to do some modifications in the file to make it match dump1090-fa. (I am away from my computer, so cannot tell you exactly what modificatios should be made in init.d file of Opensky. May try tomorrow morning).

Installed OpenSky Network Data Feeder on MX-Linux on Intel PC

NOTE: Two other easier alternatives

Alternative 1: Enable systemd
If you change the mx-linux’s default Grub setting to make it boot with systemd enabled, and purge+reinstall (1) dump1090-fa and (2) piaware packages after booting with systemd enabled, it will solve your problem without any modifications & workarounds.

Alternative 2: Do NOT enable systemd, use default sysVinit
This can be acheived by replacing dump1090-fa by dump1090-mutability,which installs sysVinit files by default.

sudo dpkg --purge dump1090-fa 

sudo apt-get install dump1090-mutability 
sudo usermod -a -G plugdev dump1090 
sudo service dump1090-mutability restart  

dump1090-fa doesn’t provide a sysvinit file on modern debian builds.

Thanks Oliver for confirming about dump1090-fa.

However following packages do install sysvinit files on systems with systemd missing or disabled, such as mx-linux:

  • piaware
  • dump1090-mutability
  • fr24feed
  • pfclient

The mx-linux is shipped with systemd, but with systemd disabled by default. It has option to boot as sysvinit or systemd.

I dont understand the logic of mx-linux developers to set (and recommend) sysvinit as default.

Isn’t the advantage of LINUX that if one flavour doesn’t suit there are 517 other options to try?


Disclaimer: 517 is a fictitious number that may or may not have been correct some time in the last 180 days

You are right, but MX-Linux is not my choice, it is the choice of OP @boulmerboy. He got stuck with failure of dump1090-fa.

Sicce in 2018, as an experiment, I have packed piaware + dump 1090-mutability + fr24feed on MX-Linux, I decided to help the OP.

In 2018 attempt, I became aware of systemd/sysvinit issue in MX-Linux. However at that time I did not use dump1090-fa, instead used dump1090-mutability (which installs sysvinit files), I could succeed.

I got stuck with OpenSky feeder which does not install sysvinit, a case similar to dump1090-fa. At that time I solved the issue by manually creating sysvinit file of OpenSky feeder in folder /etc/init.d/.

I went with option 2.

Couple of questions:
What does sudo usermod -a -G plugdev dump1090 do?

dump1090-mutability was discontinued in early 2018. dump1090-fa was last updated recently. Am I missing out on 2 years worth of improvements/features/optimizations etc running this old version?

When installing dump1090-mutability it does in fact prompt me if I would like it to start with the system (didn’t get that with dump1090-fa). After installing and restarting I can confirm it’s now running in the background. It also seems to be sending aircraft info to flightaware.

Today I also built a new antenna and my range has increased and I’m picking up more aircraft.

One thing however seems to have broken. I’m unable to open my local webserver stats page on port 8080. If I connect to the ip address I get the server hosting webpage so I know that’s working. But if I try :8080 it fails to load as if nothing is running.
Any ideas how dump1090-mutability could have broken this??

EDIT: I’m running Linux MX because I’m using an old 32bit celeron netbook computer. MX Linux produces a i386 build, is lightweight, and bang up to date.

(1) The dump1090-mutability’s init script specifies that it is controlled by user dump1090.

(2) Th user dump1090 is created during installation of dump1090-mutability.as a system user with no home directory and no groups. You can check it by following command:

$ groups dump1090
dump1090 : nogroup

(3) In order for dump1090-mutability to be able to use DVB-T, it must be member of group plugdev, but by default it is not. Unfortunately the maintainers of the dump1090-mutability (DEB_VER) have not yet removed this bug.

(4) To add user dump1090 to group plugdev following commands are required:

$ sudo usermod -a -G plugdev dump1090
$ sudo reboot

Now check:

$ groups dump1090
dump1090 : nogroup plugdev  


  1. The engine (decoder) in both versions is more or less same, so performance wise there is not much difference.

  2. Yes, the SkyView map appearance is much better than that of dump1090-mutability map, and has many more display facilities which dump1090-mutability lacks.

Please brows this thread:
Dump1090-mutability ver 1.15~dev package now available in Repository!

NOTE: The Debian package maintainers have renamed it to EB_VER (actually DEB_VER with D missing due to a bug :slight_smile: )


Nothing is broken, this is normal.The map of dump1090-mutability at port 8080 is not available. It is available at ip-of-computer/dump1090/gmap.html.


  1. In my previous post, after adding dump1090 to group plugdev, I have asked to restart dump1090-mutability. This in many cases is not sufficient, and a positive way is to REBOOT the computer.

  2. To configure/reconfigure dump1090-mutability and add your Longitude & Latitude, please issue following command.

    $ sudo dpkg-reconfigure dump1090-mutability

    The above command will open a dialog, and ask to enter parameters/choices. Just keep on pressing ENTER key to accept defaults till you reach Latitude & Longitude questions. Here you have to enter actual values, then press Enter key. Continue pressing Enter key till the dialog closes.

    At one stage pressing Enter key may not move the dialog to next stage. Press TAB key to make <ok> of dialog red, then press Enter key to move on.

    Once you have added Latitude & Longitude values, go to map ip-of-computer/dump1090/gmap.html and reload browser (Ctrl+F5). The map will start showing your station marker with 3 concentric rings (100nm, 150nm, 200nm). The Distance column in table at right of map (which was empty) will now populate with distances of aircrafts from your location. :slight_smile:



This answers the point raised by @SweetPea11


Excellent. Thanks for all the help abcd567. It’s much appreciated. Your forum post formatting is also on point!

I’m looking at my tracked aircraft now and have a query.
I can see Wolf21 flying in the MDA’s (live now [43C70E ]) off the the North East Coast. Clicking on the FlightAware and FR24 links the aircraft is not tracked. Only PlaneFinder shows the aircraft. Can you explain what is happening here?

It’s funny. As soon as you get it working you want to improve it and do more.
I’ve ordered a FlightAware Pro Plus stick to improve my reception over my cheap RTL stick.

I’ve since discovered I’m tracking aircraft that do not get shown on FlightAware (and other sites), but do get shown on ADS-B Exchange. So next I’m going to try and feed them too, however looking at their script they use the systemd service so I’m going to have problems with MX Linux again.

After running the installation script for Adsbexchange, use following method to start at boot without systemd:

sudo nano /etc/rc.local  

In above file, just above last line (which is exit 0), copy-paste following two lines:

/usr/local/share/adsbexchange/adsbexchange-feed.sh &  

/usr/local/share/adsbexchange/adsbexchange-mlat.sh &  

Save file, then reboot Computer. Hopefully this will start both adsbexchange feed and mlat scripts at boot without systemd .

Chech if you are feeding:
Go to this page and in the table of regions click on the region pertaining to you:


I ran the ABS-B install script. It appears to have installed okay. Surprised and slightly concerned me how long it took to install and how much it seemed to install on my computer for something that should be doing a simple task.

Anyway, I used https://www.adsbexchange.com/myip/ to see if it was working at this stage. It wasn’t and reports ‘No MLAT connection and No feeder connection’.

I made your file alteration and rebooted. Still not working.

I started the .sh scripts manually and it still doesn’t work. I will output those below:

$ /usr/local/share/adsbexchange/adsbexchange-feed.sh &
[1] 4603
$ Thu Jun 11 14:34:50 2020 BST  feed-adsbx starting up.
Version: 2fa1868 Wed May 20 07:48:10 2020 0200: uuidfile fix
Net-only mode, no SDR device or file open.
BeastReduce TCP output: Attempting connection to feed.adsbexchange.com port 30005 ...
Beast TCP input: Attempting connection to port 30005 ...
Beast TCP input: Connection established: port 30005
Beast TCP input: Attempting connection to localhost port 30157 ...
Beast TCP input: Connection established: localhost (::1) port 30157
BeastReduce TCP output: Connection established: feed.adsbexchange.com ( port 30005
UUID: a7afa34b-f0eb-43b3-9362-0dbeb3aabc77


$ /usr/local/share/adsbexchange/adsbexchange-mlat.sh &
[1] 4740
$ Thu Jun 11 14:36:29 2020 mlat-client 0.2.11 starting up
Thu Jun 11 14:36:29 2020 Warning: Could not create results output 'basestation,listen,31003': [Errno 98] Address already in use
Thu Jun 11 14:36:29 2020 Warning: Could not create results output 'beast,listen,30157': [Errno 98] Address already in use
Thu Jun 11 14:36:29 2020 Connected to multilateration server at feed.adsbexchange.com:31090, handshaking
Thu Jun 11 14:36:30 2020 Beast-format results connection with ::1:30104: [Errno 111] Connection refused
Thu Jun 11 14:36:35 2020 Server says: 

        In-development v2 server. Expect odd behaviour.

        The multilateration server source code is available under
        the terms of the Affero GPL (v3 or later). You may obtain
        a copy of this server's source code at the following
        location: https://github.com/adsbexchange/mlat-server
Thu Jun 11 14:36:35 2020 Handshake complete.
Thu Jun 11 14:36:35 2020   Compression:       zlib2
Thu Jun 11 14:36:35 2020   UDP transport:     disabled
Thu Jun 11 14:36:35 2020   Split sync:        disabled
Thu Jun 11 14:36:35 2020 Input connected to
Thu Jun 11 14:36:35 2020 Input format changed to BEAST, 12MHz clock
Thu Jun 11 14:37:00 2020 Beast-format results connection with connection established

I just refreshed the page and it’s showing good connections.
I’m going to restart the system to see if it’s me manually running the scripts that sorted it or was just a delay.

EDIT: I can confirm adding the scripts to /etc/rc.local started them on boot. There was just a delay.
The file was previously empty. Is this file essentially used to run commands on startup?


I’ve come across another issue we may not have realised.
MLAT requires very accurate time. Time on the system should be network synced.

Page I found on ADS-B Exchange suggests checking this with the command timedatectl. If I run this I get:

$ timedatectl
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to create bus connection: Host is down

This makes me think the lack of systemd is causing other issues? Unless my system is getting NTP by other means?

Flightware MLAT uses the clock inside the dongle. It does not use system time for anything.

Only devices like the radarcape than embed accurate GPS timestamps use local machine timing.

Thanks for that Jon. The page I read must not have realised system time is not used for MLAT. I’ll not worry that NTP is not starting on my computer.

Yes, this file essentially used to run commands on startup. Without an entry made by user (as you have added 2 lines), it does nothing.

An alternative way to run the startup files is to add these to cron job.

(a) Give command: sudo crontab -e
(b) In file opened, scroll down and at bottom add following lines:
@reboot /bin/bash /usr/local/share/adsbexchange/adsbexchange-feed.sh &
@reboot /bin/bash /usr/local/share/adsbexchange/adsbexchange-mlat.sh &

(2) After completing above step, Reboot Computer to start adsbexchange scripts.


MX-Linux is shipped with systemd builtin, with options to boot either with or without systemd enabled. By default, it boots without systemd disabled. This can be changed in Grub settings to make boot with systemd enabled as default.

Most software packages now a days use systemd. What is wrong in running MX-Linux with systemd enabled?

Nothing. In fact I would probably prefer to run the newer dump1090-fa version.

My understanding from above is I would have to reinstall everything that uses sysvinit, so it then uses systemd instead?

What about all the other services in Linux that uses sysvinit? Will it break them when swapping to systemd? Or is it a case that the distro has everything in both, so it’s only programs I have installed that will be affected?

If distro is booted with systemd enabled, then for those packages which do NOT install systemd service and install sysVinit files only, the systemd srvice files are automatically generated by systemd-sysv-generator, using init data in sysVinit files (usually in folder /etc/init.d/). The dump1090-mutability is an example of such packages.

I will suggest you boot with systemd enabled, and check piaware and dump1090-mutability. Most likely both will still work. If not, you always have option to purge and then install

OK! We’re running on sytemd.

I changed Grub to default boot systemd.
Removed the two lines from /etc/rc.local
Everything still worked!

timedatectl now works (bug in Linux MX that it doesn’t work after a default install?)

 sudo dpkg --purge dump1090-mutability
sudo dpkg -i dump1090-fa_3.8.1_i386.deb

sudo dpkg-reconfigure dump1090-fa (gives no configuration options, my guess here is it grabs info like your location from FlightAware?)


Everything appears to work great!
Is there anything I missed that I need to change?

https://mxlinux.org/wiki/system/systemd/ -Why they don’t use systemd (most of the info went over my head).

  • sudo dpkg-reconfigure dump1090-fa : not available
  • Location: yes, grabs from Flightaware through piaware
  • Gain: no (yes only in piaware sd card image from piaware cache)
  • Device index: no (yes only in piaware sd card image from piaware cache)

For last two (and some more config), edit this file:

$ sudo nano /etc/default/dump1090-fa   


# dump1090-fa configuration
# This is sourced by /usr/share/dump1090-fa/start-dump1090-fa as a
# shellscript fragment.

# If you are using a PiAware sdcard image, this config file is regenerated
# on boot based on the contents of piaware-config.txt; any changes made to this
# file will be lost.

# dump1090-fa won't automatically start unless ENABLED=yes

RECEIVER_OPTIONS="--device-index 0 --gain -10 --ppm 0"
DECODER_OPTIONS="--max-range 360 --fix"
NET_OPTIONS="--net --net-heartbeat 60 --net-ro-size 1300 --net-ro-interval 0.2 --net-ri-port 0 --net-ro-port 30002 --net-sbs-port 30003 --net-bi-port 30004,30104 --net-bo-port 30005"
JSON_OPTIONS="--json-location-accuracy 1"