Find a file
2016-03-30 08:54:37 -04:00
compat OS X compatibility cleanups. 2015-09-07 12:58:49 +01:00
debian Merge pull request #102 from rgeissert/debian-copyright 2016-02-16 21:20:38 +00:00
public_html Indentation/Readability cleanup 2016-03-30 08:54:37 -04:00
testfiles Initial commit of Dump1090, a simple Mode S decoder. 2013-01-05 13:52:25 +01:00
tools Regenerate the ICAO ranges table based on data extracted from Annex 10. 2015-09-01 14:21:25 +01:00
.gitignore Rebuild a basic faup1090 using the reworked network services bits. 2015-06-26 17:54:23 +01:00
.travis.yml Try to get travis working again. 2016-01-21 18:35:41 +00:00
anet.c IPv6 support (in theory). 2016-02-16 13:00:55 +00:00
anet.h IPv6 support (in theory). 2016-02-16 13:00:55 +00:00
convert.c OS X compatibility cleanups. 2015-09-07 12:58:49 +01:00
convert.h Factor out the sample -> magnitude conversion code and make everything a little less sample-rate-dependent. 2015-06-15 22:14:37 +01:00
COPYING GPL. 2015-01-20 16:49:01 +00:00
cpr.c Fix decoding of even lat=0 + odd lat=0 which can have 3 results (-90, 0, +90) 2015-08-17 18:07:40 +01:00
cpr.h Import CPR changes from experimental branch. 2015-01-20 18:41:44 +00:00
cprtests.c Add tests for surface decoding at the poles/equator. 2015-08-17 18:06:37 +01:00
crc.c Add some testing code that looks for ambiguous syndromes that 2015-01-23 21:59:31 +00:00
crc.h CRC reimplementation to be byte-at-a-time table-driven. 2015-01-20 23:04:05 +00:00
demod_2000.c Clean up dependencies. 2015-06-26 18:36:14 +01:00
demod_2000.h Rearrangements to the receive thread. 2015-04-09 18:51:31 +01:00
demod_2400.c Be a bit more aggressive about rejecting noise in the space periods. 2016-03-20 20:49:30 +00:00
demod_2400.h Experimental 2.4MHz Mode A/C demodulator. 2016-03-20 19:49:37 +00:00
dump1090.c Handle errors from rtlsdr_get_device_usb_strings. 2016-03-21 22:13:22 +00:00
dump1090.h Support multiple listening ports per listener type. 2016-01-24 18:47:58 +00:00
faup1090.c Support multiple listening ports per listener type. 2016-01-24 18:47:58 +00:00
icao_filter.c Don't hang if the ICAO hashtable fills up. 2015-05-30 01:09:41 +01:00
icao_filter.h icao_filter.[ch] from the experimental branch. 2015-01-20 23:53:26 +00:00
interactive.c If --hae is passed, report altitudes as HAE where available, with a H suffix. 2016-01-01 15:15:28 +00:00
LICENSE GPL. 2015-01-20 16:49:01 +00:00
Makefile Don't match faup1090 tags when generating a version string from git tags. 2015-10-27 13:57:29 +00:00
mode_ac.c Populate verbatim message for mode a/c. 2016-03-20 19:48:59 +00:00
mode_s.c Flush stdout after writing message details so it works reasonably if there's also stderr output nearby. 2016-02-05 15:41:10 +00:00
net_io.c Extra paranoia for --aggressive mode: only forward 2-bit-corrected messages 2016-03-03 12:39:01 +00:00
net_io.h Support multiple listening ports per listener type. 2016-01-24 18:47:58 +00:00
README-dump1090.md GPL. 2015-01-20 16:49:01 +00:00
README-json.md More CPR stats. 2015-02-19 18:53:11 +00:00
README.md Put the CI status in the README 2015-09-03 10:36:34 +01:00
stats.c Support multiple listening ports per listener type. 2016-01-24 18:47:58 +00:00
stats.h Don't use DF0/4/16/20 altitudes when DF17/18 altitudes are available. 2015-06-26 20:43:46 +01:00
track.c Move Mode C altitude calc into mode A/C message decoding. 2016-03-20 19:47:27 +00:00
track.h Treat zero-or-missing signal levels as "no information" and don't include them in RSSI. 2016-02-24 11:55:01 +00:00
util.c uint64_t (even at 12MHz) isn't going to overflow any time soon, don't worry about wrapping. 2015-02-08 17:59:20 +00:00
util.h uint64_t (even at 12MHz) isn't going to overflow any time soon, don't worry about wrapping. 2015-02-08 17:59:20 +00:00
view1090.c Support multiple listening ports per listener type. 2016-01-24 18:47:58 +00:00

dump1090-mutability Debian/Raspbian packages

Build Status

This is a fork of MalcolmRobb's version of dump1090 that adds new functionality and is designed to be built as a Debian/Raspbian package.

This version is licensed under the GPL (v2 or later). See the file COPYING for details.

Features

  • 2.4MHz "oversampling" support
  • doesn't run as root
  • supports FlightAware-TSV-format connections directly (same as the FlightAware version - no faup1090 needed)
  • can start from init.d, with detailed config via debconf or /etc/default/dump1090-mutability
  • can serve the virtual radar map via an external webserver (lighttpd integration included by default)
  • map view uses receiver lat/long given to dump1090 automatically
  • somewhat cleaned-up network code
  • tries to do things "the debian way" when it comes to config, package structure, etc
  • probably a bunch of other things I've forgotten..

Simple install via apt-get

There is a repository that contains the current releases. To set up the repository:

$ wget https://github.com/mutability/mutability-repo/releases/download/v0.1.0/mutability-repo_0.1.0_armhf.deb
$ sudo dpkg -i mutability-repo_0.1.0_armhf.deb

Then you can install and upgrade packages via apt-get as needed:

$ sudo apt-get update && sudo apt-get install dump1090-mutability
$ sudo dpkg-reconfigure dump1090-mutability                           # for detailed configuration
$ sudo apt-get install lighttpd && sudo lighty-enable-mod dump1090    # if you want to use the external webserver integration

Installing the mutability-repo package also installs the public key used to sign the packages; the signatures will be verified automatically by apt-get.

Manual repository setup

Add a suitable entry to sources.list:

# echo "deb http://repo.mutability.co.uk/raspbian wheezy rpi" >/etc/apt/sources.list.d/mutabiltiy.list

Obtain the public key used to sign the repository release by a method of your choice. This is the signing key:

pub   2048R/4D731812 2014-12-28 [expires: 2015-12-28]
      Key fingerprint = 2098 7C8D D31A 6107 E033  7CC3 80D5 57AA 4D73 1812
uid                  Oliver Jowett (repo.mutability.co.uk archive signing key) <oliver@mutability.co.uk>

which is available from:

Install the key with apt-key add or by placing the keyring in /etc/apt/trusted.gpg.d/

Manual installation

To install from packages directly:

You will need a librtlsdr0 package for Raspbian. There is no standard build of this. I have built suitable packages that are available from this release page

Then you will need the dump1090-mutability package itself from this release page

Install the packages with dpkg.

Configuration

By default it'll only ask you whether to start automatically and assume sensible defaults for everything else. Notable defaults that are perhaps not what you'd first expect:

  • All network ports are bound to the localhost interface only. If you need remote access to the ADS-B data ports, you will want to change this to bind to the wildcard address.
  • The internal HTTP server is disabled. I recommend using an external webserver (see below). You can reconfigure to enable the internal one if you don't want to use an external one.

To reconfigure, either use dpkg-reconfigure dump1090-mutability or edit /etc/default/dump1090-mutability. Both should be self-explanatory.

External webserver configuration

This is the recommended configuration; a dedicated webserver is almost always going to be better and more secure than the collection of hacks that is the dump1090 webserver. It works by having dump1090 write json files to a path under /run once a second (this is on tmpfs and will not write to the sdcard). Then an external webserver is used to serve both the static html/javascript files making up the map view, and the json files that provide the dynamic data.

The package includes a config file for lighttpd (which is what I happen to use on my system). To use this:

# apt-get install lighttpd         # if you don't have it already
# lighty-enable-mod dump1090
# service lighttpd force-reload

This uses a configuration file installed by the package at /etc/lighttpd/conf-available/89-dump1090.conf. It makes the map view available at http:///dump1090/

This should also work fine with other webservers, you will need to write a similar config to the lighttpd one (it's basically just a couple of aliases). If you do set up a config for something else, please send me a copy so I can integrate it into the package!

Logging

The default configuration logs to /var/log/dump1090-mutability.log (this can be reconfigured). The only real logging other than any startup problems is hourly stats. There is a logrotate configuration installed by the package at /etc/logrotate.d/dump1090-mutability that will rotate that logfile weekly.

Bug reports, feedback etc

Please use the github issues page to report any problems. Or you can email me.

Future plans

Packages following the same model for MalcolmRobb & FlightAware's forks of dump1090 are in the pipeline. So is a repackaged version of piaware.

Building from source

While there is a Makefile that you can use, the preferred way to build is via the Debian package building system:

$ sudo apt-get install librtlsdr-dev libusb-1.0-0-dev pkg-config debhelper
$ dpkg-buildpackage -b

Or you can use debuild/pdebuild. I find building via qemubuilder quite effective for building images for Raspbian (it's actually faster to build on an emulated ARM running on my PC than to build directly on real hardware).

Here's the pbuilder config I use to build the Raspbian packages:

MIRRORSITE=http://mirrordirector.raspbian.org/raspbian/
PDEBUILD_PBUILDER=cowbuilder
BASEPATH=/var/cache/pbuilder/armhf-raspbian-wheezy-base.cow
DISTRIBUTION=wheezy
OTHERMIRROR="deb http://repo.mutability.co.uk/raspbian wheezy rpi"
ARCHITECTURE=armhf
DEBOOTSTRAP=qemu-debootstrap
DEBOOTSTRAPOPTS="--variant=buildd --keyring=/usr/share/keyrings/raspbian-archive-keyring.gpg"
COMPONENTS="main contrib non-free rpi"
EXTRAPACKAGES="eatmydata debhelper fakeroot"
ALLOWUNTRUSTED="no"
APTKEYRINGS=("/home/oliver/ppa/mutability.gpg")