Start trimming dump1090-mutability down for use in piaware.
This commit is contained in:
parent
9479a5c9be
commit
b433a521bf
26 changed files with 162 additions and 2458 deletions
10
debian/changelog
vendored
10
debian/changelog
vendored
|
|
@ -1,4 +1,10 @@
|
|||
dump1090-mutability (1.15~dev) UNRELEASED; urgency=medium
|
||||
dump1090-fa (2.2.0~dev) UNRELEASE; urgency=medium
|
||||
|
||||
* testing, testing.
|
||||
|
||||
-- Oliver Jowett <oliver@mutability.co.uk> Mon, 11 Jan 2016 17:20:05 +0000
|
||||
|
||||
dump1090-mutability (1.15~devubuntu1) UNRELEASED; urgency=medium
|
||||
|
||||
* In development.
|
||||
* Validate that the username given to debconf is syntactically OK and
|
||||
|
|
@ -22,7 +28,7 @@ dump1090-mutability (1.15~dev) UNRELEASED; urgency=medium
|
|||
timestamp value. If they arrive, tag the derived data as mlat-derived.
|
||||
Don't include mlat-derived output in FATSV output to avoid loops.
|
||||
|
||||
-- Oliver Jowett <oliver@mutability.co.uk> Thu, 19 Feb 2015 22:39:19 +0000
|
||||
-- Oliver Jowett <oliver@mutability.co.uk> Mon, 11 Jan 2016 17:20:05 +0000
|
||||
|
||||
dump1090-mutability (1.14) unstable; urgency=medium
|
||||
|
||||
|
|
|
|||
2
debian/compat
vendored
2
debian/compat
vendored
|
|
@ -1 +1 @@
|
|||
8
|
||||
9
|
||||
127
debian/config-template
vendored
127
debian/config-template
vendored
|
|
@ -1,128 +1,21 @@
|
|||
## TEMPLATE FILE - This is used to create /etc/default/dump1090-mutability ##
|
||||
## The first three lines will be discarded ##
|
||||
# dump1090-fa configuration
|
||||
# This is read by the systemd service file as environment vars,
|
||||
# and evaluated by some scripts as a POSIX shell fragment.
|
||||
|
||||
# dump1090-mutability configuration file
|
||||
# This is a POSIX shell fragment.
|
||||
# You can edit this file directly, or use
|
||||
# "dpkg-reconfigure dump1090-mutability"
|
||||
# User to run as.
|
||||
DUMP1090_USER=dump1090
|
||||
|
||||
# Set to "yes" to start dump1090 on boot.
|
||||
START_DUMP1090=
|
||||
|
||||
# User to run dump1090 as.
|
||||
DUMP1090_USER=
|
||||
|
||||
# Logfile to log to
|
||||
LOGFILE=
|
||||
|
||||
#
|
||||
# Receiver options
|
||||
#
|
||||
# Where to log to. (See also /etc/logrotate.d/dump1090-fa.conf)
|
||||
LOGFILE=/var/log/dump1090-fa.log
|
||||
|
||||
# RTLSDR device index or serial number to use
|
||||
# If set to "none", dump1090 will be started in --net-only mode
|
||||
DEVICE=
|
||||
DEVICE=0
|
||||
|
||||
# RTLSDR gain in dB.
|
||||
# If set to "max" (the default) the maximum supported gain is used.
|
||||
# If set to "agc", the tuner AGC is used to set the gain.
|
||||
GAIN=
|
||||
GAIN=agc
|
||||
|
||||
# RTLSDR frequency correction in PPM
|
||||
PPM=
|
||||
|
||||
# If yes, enable sampling at 2.4MHz. Otherwise, 2.0MHz is used.
|
||||
OVERSAMPLE=
|
||||
|
||||
# If yes, enables phase-enhancement of messages
|
||||
PHASE_ENHANCE=
|
||||
|
||||
#
|
||||
# Decoding options
|
||||
#
|
||||
|
||||
# If yes, fixes messages with correctable CRC errors.
|
||||
FIX_CRC=
|
||||
|
||||
# If yes, enables aggressive fixes to damaged messages.
|
||||
# Use with caution - it can increase the rate of undetected errors.
|
||||
AGGRESSIVE=
|
||||
|
||||
# If set, supplies a reference location for local position decoding.
|
||||
LAT=
|
||||
LON=
|
||||
|
||||
# If set, provides the absolute maximum receiver range used to
|
||||
# filter bad position reports, and to determine when local position
|
||||
# decoding is safe to use. Specify this in nautical miles (NM).
|
||||
MAX_RANGE=
|
||||
|
||||
#
|
||||
# Networking options
|
||||
#
|
||||
|
||||
# Port to listen on for HTTP connections. 0 disables.
|
||||
# HTTP defaults to being disabled unless you specify something here. I
|
||||
# that you do not enable this, and instead serve the contents of
|
||||
# /usr/share/dump1090-mutability and JSON_DIR (below) using a proper
|
||||
# webserver. See /etc/lighttpd/conf-available/90-dump1090.conf
|
||||
# for an example configuration ("sudo lighty-enable-mod dump1090" to enable)
|
||||
HTTP_PORT=
|
||||
|
||||
# Port to listen on for raw (AVR-format) input connections. 0 disables.
|
||||
RAW_INPUT_PORT=
|
||||
|
||||
# Port to listen on for raw (AVR-format) output connections. 0 disables.
|
||||
RAW_OUTPUT_PORT=
|
||||
|
||||
# Port to listen on for SBS-format output connections. 0 disables.
|
||||
SBS_OUTPUT_PORT=
|
||||
|
||||
# Port to listen on for Beast-format input connections. 0 disables.
|
||||
BEAST_INPUT_PORT=
|
||||
|
||||
# Port to listen on for Beast-format output connections. 0 disables.
|
||||
BEAST_OUTPUT_PORT=
|
||||
|
||||
# Port to listen on for FATSV-format output connections. 0 disables.
|
||||
FATSV_OUTPUT_PORT=
|
||||
|
||||
# TCP heartbeat interval in seconds. 0 disables.
|
||||
NET_HEARTBEAT=
|
||||
|
||||
# Minimum output buffer size per write, in bytes.
|
||||
NET_OUTPUT_SIZE=
|
||||
|
||||
# Maximum buffering time before writing, in seconds.
|
||||
NET_OUTPUT_INTERVAL=
|
||||
|
||||
# TCP buffer size, in bytes
|
||||
NET_BUFFER=
|
||||
|
||||
# Bind ports on a particular address. If unset, binds to all interfaces.
|
||||
# This defaults to binding to localhost. If you need to allow remote
|
||||
# connections, change this.
|
||||
NET_BIND_ADDRESS=
|
||||
|
||||
#
|
||||
# Misc options
|
||||
#
|
||||
|
||||
# Interval (in seconds) between logging stats to the logfile. 0 disables.
|
||||
STATS_INTERVAL=
|
||||
|
||||
# Path to write json state to (for use with an external webserver). Blank disables.
|
||||
JSON_DIR=
|
||||
|
||||
# Interval between writing json state (in seconds). 0 disables.
|
||||
JSON_INTERVAL=
|
||||
|
||||
# Accuracy of receiver location to write to json state, one of "exact" / "approximate" / "none"
|
||||
JSON_LOCATION_ACCURACY=
|
||||
|
||||
# Set to yes to log all decoded messages
|
||||
# This can get large fast!
|
||||
LOG_DECODED_MESSAGES=
|
||||
|
||||
# Additional options that are passed to the Daemon.
|
||||
EXTRA_ARGS=
|
||||
PPM=0
|
||||
|
|
|
|||
15
debian/control
vendored
15
debian/control
vendored
|
|
@ -1,21 +1,18 @@
|
|||
Source: dump1090-mutability
|
||||
Source: dump1090-fa
|
||||
Section: embedded
|
||||
Priority: extra
|
||||
Maintainer: Oliver Jowett <oliver@mutability.co.uk>
|
||||
Build-Depends: debhelper(>=8), librtlsdr-dev, libusb-1.0-0-dev, pkg-config
|
||||
Build-Depends: debhelper(>=9), librtlsdr-dev, libusb-1.0-0-dev, pkg-config, dh-systemd
|
||||
Standards-Version: 3.9.3
|
||||
Homepage: https://github.com/mutability/dump1090
|
||||
Vcs-Git: https://github.com/mutability/dump1090.git
|
||||
|
||||
Package: dump1090-mutability
|
||||
Package: dump1090-fa
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, adduser
|
||||
Recommends: python(>=2.5), cron | cron-daemon, curl
|
||||
Suggests: lighttpd
|
||||
Provides: fatsv-data-source
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, python(>=2.5), cron | cron-daemon, curl, lighttpd
|
||||
Description: ADS-B Ground Station System for RTL-SDR
|
||||
Networked Aviation Mode S / ADS-B decoder/translator with RTL-SDR software
|
||||
defined radio USB device support.
|
||||
.
|
||||
This is a packaging of the "mutability" fork of dump1090 that includes
|
||||
sampling at 2.4MHz and other improvements.
|
||||
This is FlightAware's packaging of dump1090-mutability, customized for use
|
||||
in the piaware sdcard images.
|
||||
|
|
|
|||
2
debian/cron-template
vendored
2
debian/cron-template
vendored
|
|
@ -9,4 +9,4 @@
|
|||
# all installs hitting the server at the same time.
|
||||
|
||||
# m h dom mon dow user command
|
||||
@MIN@ 5 * * * @USER@ test -x /usr/share/dump1090-mutability/update-aircraft-database.sh && /usr/share/dump1090-mutability/update-aircraft-database.sh --log-to-file
|
||||
@MIN@ 5 @DOM@ * * @USER@ test -x /usr/share/dump1090-fa/update-aircraft-database.sh && /usr/share/dump1090-fa/update-aircraft-database.sh --log-to-file
|
||||
|
|
|
|||
11
debian/dump1090-fa.default
vendored
Normal file
11
debian/dump1090-fa.default
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# dump1090-fa configuration
|
||||
# This is read by the systemd service file as an environment file,
|
||||
# and evaluated by some scripts as a POSIX shell fragment.
|
||||
|
||||
# TODO: This needs to be generated from piaware-config.txt
|
||||
|
||||
#RECEIVER_OPTIONS="--device-index 0 --gain -10 --ppm 0 --oversample --phase-enhance --net-bo-port 30005 --fix"
|
||||
RECEIVER_OPTIONS="--net-only --net-bo-port 0"
|
||||
DECODER_OPTIONS="--max-range 300"
|
||||
NET_OPTIONS="--net --net-heartbeat 60 --net-ro-size 1000 --net-ro-interval 1 --net-http-port 0 --net-ri-port 0 --net-ro-port 30002 --net-sbs-port 30003 --net-bi-port 30104 --net-fatsv-port 0"
|
||||
JSON_OPTIONS="--json-location-accuracy 1"
|
||||
5
debian/dump1090-fa.install
vendored
Normal file
5
debian/dump1090-fa.install
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
public_html/* usr/share/dump1090-fa/html
|
||||
debian/lighttpd/* etc/lighttpd/conf-available
|
||||
debian/cron-template usr/share/dump1090-fa
|
||||
tools/vrs-basicaircraft-to-json.py usr/share/dump1090-fa
|
||||
tools/update-aircraft-database.sh usr/share/dump1090-fa
|
||||
70
debian/dump1090-fa.postinst
vendored
Normal file
70
debian/dump1090-fa.postinst
vendored
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
#!/bin/bash
|
||||
# postinst script for dump1090
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
NAME=dump1090-fa
|
||||
RUNAS=dump1090
|
||||
CRONFILE=/etc/cron.d/$NAME
|
||||
TEMPLATECRON=/usr/share/$NAME/cron-template
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
if ! getent passwd "$RUNAS" >/dev/null
|
||||
then
|
||||
adduser --system --home /usr/share/$NAME --no-create-home --quiet "$RUNAS"
|
||||
fi
|
||||
|
||||
# create cronjob
|
||||
if ! test -e $CRONFILE; then
|
||||
echo "Creating cronjob in $CRONFILE to periodically update the aircraft database.." >&2
|
||||
MIN=$(($RANDOM % 60))
|
||||
DOM=$(( ($RANDOM % 28) + 1 ))
|
||||
tail -n +4 $TEMPLATECRON | sed -e "s/@USER@/$RUNAS/g" -e "s/@MIN@/$MIN/g" -e "s/@DOM@/$DOM/g" >$CRONFILE
|
||||
fi
|
||||
|
||||
# update the DB
|
||||
echo "Updating aircraft database now.."
|
||||
mkdir -m 0755 -p /var/cache/$NAME
|
||||
chown $RUNAS /var/cache/$NAME
|
||||
su $RUNAS -s /bin/bash -c /usr/share/$NAME/update-aircraft-database.sh || true
|
||||
|
||||
# set up lighttpd
|
||||
echo "Enabling lighttpd integration.." >&2
|
||||
lighty-enable-mod dump1090-fa || true
|
||||
echo "Restarting lighttpd.." >&2
|
||||
invoke-rc.d lighttpd force-reload || true
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
if [ "$1" = "configure" ]; then db_stop; fi
|
||||
exit 0
|
||||
|
|
@ -20,14 +20,20 @@ set -e
|
|||
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
echo "Disabling dump1090-fa lighttpd integration.." >&2
|
||||
lighty-disable-mod dump1090-fa || echo "warning: failed to disable lighttpd module" >&2
|
||||
invoke-rc.d lighttpd restart || echo "warning: failed to restart lighttpd" >&2
|
||||
;;
|
||||
|
||||
purge)
|
||||
rm -f /etc/default/dump1090-mutability
|
||||
rm -f /etc/cron.d/dump1090-mutability
|
||||
rm -rf /var/cache/dump1090-mutability
|
||||
;;
|
||||
rm -f /etc/default/dump1090-fa
|
||||
rm -f /etc/cron.d/dump1090-fa
|
||||
rm -rf /var/cache/dump1090-fa
|
||||
;;
|
||||
|
||||
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
24
debian/dump1090-fa.service
vendored
Normal file
24
debian/dump1090-fa.service
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# dump1090-fa service for systemd
|
||||
|
||||
[Unit]
|
||||
Description=dump1090 ADS-B receiver (FlightAware customization)
|
||||
Documentation=https://flightaware.com/adsb/piaware/
|
||||
Wants=network.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=/etc/default/dump1090-fa
|
||||
EnvironmentFile=-/var/cache/piaware/location.env
|
||||
User=dump1090
|
||||
RuntimeDirectory=dump1090-fa
|
||||
RuntimeDirectoryMode=0755
|
||||
ExecStart=/usr/bin/dump1090-fa \
|
||||
$RECEIVER_OPTIONS $DECODER_OPTIONS $NET_OPTIONS $JSON_OPTIONS $PIAWARE_DUMP1090_LOCATION_OPTIONS \
|
||||
--write-json /run/dump1090-fa --quiet --stats-every 86400
|
||||
Type=simple
|
||||
Restart=on-failure
|
||||
RestartSec=30
|
||||
Nice=-5
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
8
debian/dump1090-mutability.conffiles
vendored
8
debian/dump1090-mutability.conffiles
vendored
|
|
@ -1,8 +0,0 @@
|
|||
/usr/share/dump1090-mutability/html/config.js
|
||||
/usr/share/dump1090-mutability/html/gmap.html
|
||||
/usr/share/dump1090-mutability/html/script.js
|
||||
/usr/share/dump1090-mutability/html/planeObject.js
|
||||
/usr/share/dump1090-mutability/html/style.css
|
||||
/usr/share/dump1090-mutability/html/markers.js
|
||||
/usr/share/dump1090-mutability/html/formatter.js
|
||||
/usr/share/dump1090-mutability/html/dbloader.js
|
||||
237
debian/dump1090-mutability.config
vendored
237
debian/dump1090-mutability.config
vendored
|
|
@ -1,237 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
NAME=dump1090-mutability
|
||||
CONFIGFILE=/etc/default/$NAME
|
||||
set -e
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
db_set_yn() {
|
||||
if [ "x$2" = "xyes" ]; then db_set $1 true; else db_set $1 false; fi
|
||||
}
|
||||
|
||||
# Load config file, if it exists.
|
||||
if [ -e $CONFIGFILE ]; then
|
||||
. $CONFIGFILE || true
|
||||
|
||||
# Store values from config file into
|
||||
# debconf db.
|
||||
|
||||
db_set_yn $NAME/auto-start "$START_DUMP1090"
|
||||
db_set $NAME/run-as-user "$DUMP1090_USER"
|
||||
db_set $NAME/log-file "$LOGFILE"
|
||||
|
||||
db_set $NAME/rtlsdr-device "$DEVICE"
|
||||
db_set $NAME/rtlsdr-gain "$GAIN"
|
||||
db_set $NAME/rtlsdr-ppm "$PPM"
|
||||
db_set_yn $NAME/rtlsdr-oversample "$OVERSAMPLE"
|
||||
|
||||
db_set_yn $NAME/decode-fixcrc "$FIX_CRC"
|
||||
db_set_yn $NAME/decode-phase-enhance "$PHASE_ENHANCE"
|
||||
db_set_yn $NAME/decode-aggressive "$AGGRESSIVE"
|
||||
db_set $NAME/decode-lat "$LAT"
|
||||
db_set $NAME/decode-lon "$LON"
|
||||
db_set $NAME/decode-max-range "$MAX_RANGE"
|
||||
|
||||
db_set $NAME/net-http-port "$HTTP_PORT"
|
||||
db_set $NAME/net-ri-port "$RAW_INPUT_PORT"
|
||||
db_set $NAME/net-ro-port "$RAW_OUTPUT_PORT"
|
||||
db_set $NAME/net-bi-port "$BEAST_INPUT_PORT"
|
||||
db_set $NAME/net-bo-port "$BEAST_OUTPUT_PORT"
|
||||
db_set $NAME/net-sbs-port "$SBS_OUTPUT_PORT"
|
||||
db_set $NAME/net-fatsv-port "$FATSV_OUTPUT_PORT"
|
||||
db_set $NAME/net-heartbeat "$NET_HEARTBEAT"
|
||||
db_set $NAME/net-out-size "$NET_OUTPUT_SIZE"
|
||||
db_set $NAME/net-out-interval "$NET_OUTPUT_INTERVAL"
|
||||
db_set $NAME/net-buffer "$NET_BUFFER"
|
||||
db_set $NAME/net-bind-address "$NET_BIND_ADDRESS"
|
||||
|
||||
db_set $NAME/stats-interval "$STATS_INTERVAL"
|
||||
db_set $NAME/json-dir "$JSON_DIR"
|
||||
db_set $NAME/json-interval "$JSON_INTERVAL"
|
||||
db_set $NAME/json-location-accuracy "$JSON_LOCATION_ACCURACY"
|
||||
db_set_yn $NAME/log-decoded-messages "$LOG_DECODED_MESSAGES"
|
||||
db_set $NAME/extra-args "$EXTRA_ARGS"
|
||||
fi
|
||||
|
||||
# Ask questions.
|
||||
|
||||
db_input_verify() {
|
||||
# $1 = priority
|
||||
# $2 = db key
|
||||
# $3 = verification function, should return 0 if OK
|
||||
PRI=$1; KEY=$2; VERIFY=$3
|
||||
|
||||
set +e
|
||||
db_input $PRI $KEY; RESULT=$?
|
||||
db_go
|
||||
set -e
|
||||
ASKED=0
|
||||
while :
|
||||
do
|
||||
db_get $KEY
|
||||
if $VERIFY "$RET"; then return 0; fi
|
||||
if [ $RESULT -ne 0 ]; then
|
||||
# db_input failed, and the existing value does not validate
|
||||
if [ $RESULT = 30 ] && [ $ASKED = 0 ]
|
||||
then
|
||||
# question was skipped, but existing value is invalid
|
||||
# bump priority and try again (once)
|
||||
PRI=high
|
||||
ASKED=1
|
||||
else
|
||||
# give up, use the default value
|
||||
db_reset $KEY
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
# db_input was OK, but the value did not verify.
|
||||
# show an error message
|
||||
db_input high dump1090-mutability/invalid-$VERIFY || true
|
||||
fi
|
||||
|
||||
# try again
|
||||
set +e
|
||||
db_fset $KEY seen false
|
||||
db_input high $KEY; RESULT=$?
|
||||
db_go
|
||||
set -e
|
||||
done
|
||||
}
|
||||
|
||||
is_unsigned_int() {
|
||||
if echo "$1" | grep -Eq '^(0|+?[1-9][0-9]*)$'; then return 0; else return 1; fi
|
||||
}
|
||||
|
||||
is_unsigned_int_or_empty() {
|
||||
if [ -z "$1" ]; then return 0
|
||||
elif is_unsigned_int "$1"; then return 0
|
||||
else return 1; fi
|
||||
}
|
||||
|
||||
is_positive_int() {
|
||||
if echo "$1" | grep -Eq '^(+?[1-9][0-9]*)$'; then return 0; else return 1; fi
|
||||
}
|
||||
|
||||
is_signed_int() {
|
||||
if echo "$1" | grep -Eq '^(0|[+-]?[1-9][0-9]*)$'; then return 0; else return 1; fi
|
||||
}
|
||||
|
||||
is_signed_int_or_empty() {
|
||||
if [ -z "$1" ]; then return 0
|
||||
elif is_signed_int "$1"; then return 0
|
||||
else return 1; fi
|
||||
}
|
||||
|
||||
is_ipaddrish() {
|
||||
if echo "$1" | grep -Eq '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'; then return 0; else return 1; fi
|
||||
}
|
||||
|
||||
is_ipaddrish_or_empty() {
|
||||
if [ -z "$1" ]; then return 0
|
||||
elif is_ipaddrish "$1"; then return 0
|
||||
else return 1; fi
|
||||
}
|
||||
|
||||
is_number() {
|
||||
if echo "$1" | grep -Eq '^([+-]?[0-9][0-9]*)(\.[0-9]+)?$'; then return 0; else return 1; fi
|
||||
}
|
||||
|
||||
is_unsigned_number() {
|
||||
if echo "$1" | grep -Eq '^([+]?[0-9][0-9]*)(\.[0-9]+)?$'; then return 0; else return 1; fi
|
||||
}
|
||||
|
||||
is_positive_number() {
|
||||
if echo "$1" | grep -Eq '^(([+]?0\.[0-9]*[1-9]+[0-9]*)|([+]?[1-9][0-9]*)(\.[0-9]+)?)$'; then return 0; else return 1; fi
|
||||
}
|
||||
|
||||
is_number_or_empty() {
|
||||
if [ -z "$1" ]; then return 0
|
||||
elif is_number "$1"; then return 0;
|
||||
else return 1; fi
|
||||
}
|
||||
|
||||
is_valid_gain() {
|
||||
if is_number "$1"; then return 0;
|
||||
elif [ "$1" = "max" ]; then return 0;
|
||||
elif [ "$1" = "agc" ]; then return 0;
|
||||
else return 1; fi
|
||||
}
|
||||
|
||||
is_not_empty() {
|
||||
if [ -z "$1" ]; then return 1; else return 0; fi
|
||||
}
|
||||
|
||||
# "adduser: To avoid problems, the username should consist only of
|
||||
# letters, digits, underscores, full stops, at signs and dashes, and not start with
|
||||
# a dash (as defined by IEEE Std 1003.1-2001). For compatibility with Samba
|
||||
# machine accounts $ is also supported at the end of the username"
|
||||
is_non_root_user() {
|
||||
if [ -z "$1" ]; then return 1;
|
||||
elif [ "$1" = "root" ]; then return 1;
|
||||
elif echo "$1" | grep -Eq '^[a-zA-Z0-9_.@-]+\$?$'; then return 0;
|
||||
else return 1; fi
|
||||
}
|
||||
|
||||
is_port_number() {
|
||||
if is_unsigned_int "$1"; then
|
||||
if [ "$1" -eq 0 ]; then return 0; fi
|
||||
if [ "$1" -lt 1024 ]; then return 1; fi
|
||||
if [ "$1" -gt 65535 ]; then return 1; fi
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
db_input high $NAME/auto-start || true
|
||||
db_input_verify low $NAME/run-as-user is_non_root_user || true
|
||||
db_input_verify low $NAME/log-file is_not_empty || true
|
||||
|
||||
db_go || true; db_get $NAME/auto-start; if [ "$RET" = "true" ]; then
|
||||
# all of these are only relevant if the init script is enabled
|
||||
db_input medium $NAME/rtlsdr-device || true
|
||||
|
||||
db_go || true; db_get $NAME/rtlsdr-device; if [ "x$RET" != "xnone" ]; then
|
||||
# only if a real device was chosen:
|
||||
db_input_verify medium $NAME/rtlsdr-gain is_valid_gain || true
|
||||
db_input_verify medium $NAME/rtlsdr-ppm is_signed_int || true
|
||||
db_input low $NAME/rtlsdr-oversample || true
|
||||
fi
|
||||
|
||||
db_input low $NAME/decode-fix-crc || true
|
||||
db_input low $NAME/decode-aggressive || true
|
||||
db_input_verify medium $NAME/decode-max-range is_number || true
|
||||
db_input_verify medium $NAME/decode-lat is_number_or_empty || true
|
||||
|
||||
db_go || true; db_get $NAME/decode-lat; if [ -n "$RET" ]; then
|
||||
# only if latitude was given:
|
||||
db_input_verify medium $NAME/decode-lon is_number_or_empty || true
|
||||
fi
|
||||
|
||||
db_input_verify medium $NAME/net-http-port is_port_number || true
|
||||
db_input_verify low $NAME/net-ri-port is_port_number || true
|
||||
db_input_verify low $NAME/net-ro-port is_port_number || true
|
||||
db_input_verify low $NAME/net-bi-port is_port_number || true
|
||||
db_input_verify low $NAME/net-bo-port is_port_number || true
|
||||
db_input_verify low $NAME/net-sbs-port is_port_number || true
|
||||
db_input_verify low $NAME/net-fatsv-port is_port_number || true
|
||||
db_input_verify low $NAME/net-heartbeat is_unsigned_number || true
|
||||
db_input_verify low $NAME/net-out-size is_unsigned_int || true
|
||||
db_input_verify low $NAME/net-out-interval is_unsigned_number || true
|
||||
db_input_verify low $NAME/net-buffer is_unsigned_int || true
|
||||
db_input_verify medium $NAME/net-bind-address is_ipaddrish_or_empty || true
|
||||
|
||||
db_input_verify low $NAME/stats-interval is_unsigned_int || true
|
||||
|
||||
db_input_verify low $NAME/json-interval is_positive_number || true
|
||||
db_input low $NAME/json-location-accuracy || true
|
||||
db_input low $NAME/json-dir || true
|
||||
|
||||
db_input low $NAME/log-decoded-messages || true
|
||||
db_input low $NAME/extra-args || true
|
||||
|
||||
db_go || True
|
||||
fi
|
||||
|
||||
# Done.
|
||||
db_stop
|
||||
207
debian/dump1090-mutability.init
vendored
207
debian/dump1090-mutability.init
vendored
|
|
@ -1,207 +0,0 @@
|
|||
#!/bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: dump1090-mutability
|
||||
# Required-Start: $remote_fs
|
||||
# Required-Stop: $remote_fs
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: dump1090 daemon (mutability variant)
|
||||
# Description: Receives ADS-B messages from a RTLSDR dongle
|
||||
# and makes them available to other applications via
|
||||
# a variety of network protocols.
|
||||
### END INIT INFO
|
||||
|
||||
# Do NOT "set -e"
|
||||
|
||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
DESC="dump1090-mutability daemon"
|
||||
NAME=dump1090-mutability
|
||||
DAEMON=/usr/bin/$NAME
|
||||
ARGS=""
|
||||
PIDFILE=/var/run/$NAME.pid
|
||||
SCRIPTNAME=/etc/init.d/$NAME
|
||||
|
||||
# Exit if the package is not installed
|
||||
[ -x "$DAEMON" ] || exit 0
|
||||
|
||||
# Read configuration variable file if it is present
|
||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||
|
||||
# work out daemon args
|
||||
|
||||
# sanitize missing settings
|
||||
[ -z "$START_DUMP1090" ] && START_DUMP1090=no
|
||||
[ -z "$DUMP1090_USER" ] && DUMP1090_USER="missing-DUMP1090_USER-setting-in-config"
|
||||
[ -z "$HTTP_PORT" ] && HTTP_PORT=0
|
||||
[ -z "$RAW_INPUT_PORT" ] && RAW_INPUT_PORT=0
|
||||
[ -z "$RAW_OUTPUT_PORT" ] && RAW_OUTPUT_PORT=0
|
||||
[ -z "$SBS_OUTPUT_PORT" ] && SBS_OUTPUT_PORT=0
|
||||
[ -z "$BEAST_INPUT_PORT" ] && BEAST_INPUT_PORT=0
|
||||
[ -z "$BEAST_OUTPUT_PORT" ] && BEAST_OUTPUT_PORT=0
|
||||
[ -z "$FATSV_OUTPUT_PORT" ] && FATSV_OUTPUT_PORT=0
|
||||
[ -z "$NET_BUFFER" ] && NET_BUFFER=0
|
||||
[ -z "$JSON_INTERVAL" ] && JSON_INTERVAL=0
|
||||
[ -z "$MAX_RANGE" ] && MAX_RANGE=300
|
||||
|
||||
# receiver:
|
||||
NICELEVEL="--nicelevel -5"
|
||||
case "x$DEVICE" in
|
||||
x|x0) ARGS="$ARGS --net" ;;
|
||||
xnone) ARGS="$ARGS --net-only"; NICELEVEL="" ;;
|
||||
*) ARGS="$ARGS --net --device-index $DEVICE" ;;
|
||||
esac
|
||||
case "x$GAIN" in
|
||||
x|xmax) ;;
|
||||
xagc) ARGS="$ARGS --gain -10" ;;
|
||||
*) ARGS="$ARGS --gain $GAIN" ;;
|
||||
esac
|
||||
if [ -n "$PPM" ]; then ARGS="$ARGS --ppm $PPM"; fi
|
||||
if [ "x$OVERSAMPLE" = "xyes" ]; then ARGS="$ARGS --oversample"; fi
|
||||
|
||||
# decoder:
|
||||
if [ "x$FIX_CRC" = "xyes" ]; then ARGS="$ARGS --fix"; fi
|
||||
if [ "x$PHASE_ENHANCE" = "xyes" ]; then ARGS="$ARGS --phase-enhance"; fi
|
||||
if [ "x$AGGRESSIVE" = "xyes" ]; then ARGS="$ARGS --aggressive"; fi
|
||||
if [ -n "$LAT" ]; then ARGS="$ARGS --lat $LAT"; fi
|
||||
if [ -n "$LON" ]; then ARGS="$ARGS --lon $LON"; fi
|
||||
ARGS="$ARGS --max-range $MAX_RANGE"; fi
|
||||
|
||||
# net:
|
||||
|
||||
ARGS="$ARGS --net-http-port $HTTP_PORT \
|
||||
--net-ri-port $RAW_INPUT_PORT --net-ro-port $RAW_OUTPUT_PORT \
|
||||
--net-bi-port $BEAST_INPUT_PORT --net-bo-port $BEAST_OUTPUT_PORT \
|
||||
--net-sbs-port $SBS_OUTPUT_PORT --net-fatsv-port $FATSV_OUTPUT_PORT"
|
||||
if [ -n "$NET_HEARTBEAT" ]; then ARGS="$ARGS --net-heartbeat $NET_HEARTBEAT"; fi
|
||||
if [ -n "$NET_OUTPUT_SIZE" ]; then ARGS="$ARGS --net-ro-size $NET_OUTPUT_SIZE"; fi
|
||||
if [ -n "$NET_OUTPUT_INTERVAL" ]; then ARGS="$ARGS --net-ro-interval $NET_OUTPUT_INTERVAL"; fi
|
||||
if [ "$NET_BUFFER" -le "65536" ]; then ARGS="$ARGS --net-buffer 0"
|
||||
elif [ "$NET_BUFFER" -le "131072" ]; then ARGS="$ARGS --net-buffer 1"
|
||||
elif [ "$NET_BUFFER" -le "262144" ]; then ARGS="$ARGS --net-buffer 2"
|
||||
else ARGS="$ARGS --net-buffer 3"; fi
|
||||
if [ -n "$NET_BIND_ADDRESS" ]; then ARGS="$ARGS --net-bind-address $NET_BIND_ADDRESS"; fi
|
||||
|
||||
# misc:
|
||||
if [ -n "$STATS_INTERVAL" ]; then ARGS="$ARGS --stats-every $STATS_INTERVAL"; fi
|
||||
if [ -n "$JSON_DIR" ]; then ARGS="$ARGS --write-json $JSON_DIR"; fi
|
||||
if [ -n "$JSON_INTERVAL" ]; then ARGS="$ARGS --write-json-every $JSON_INTERVAL"; fi
|
||||
case "x$JSON_LOCATION_ACCURACY" in
|
||||
xexact) ARGS="$ARGS --json-location-accuracy 2" ;;
|
||||
xapproximate) ARGS="$ARGS --json-location-accuracy 1" ;;
|
||||
*) ARGS="$ARGS --json-location-accuracy 0" ;;
|
||||
esac
|
||||
|
||||
if [ "x$LOG_DECODED_MESSAGES" != "xyes" ]; then ARGS="$ARGS --quiet"; fi
|
||||
|
||||
if [ -n "$EXTRA_ARGS" ]; then ARGS="$ARGS $EXTRA_ARGS"; fi
|
||||
|
||||
# Load the VERBOSE setting and other rcS variables
|
||||
. /lib/init/vars.sh
|
||||
|
||||
# Define LSB log_* functions.
|
||||
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
|
||||
# and status_of_proc is working.
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
#
|
||||
# Function that starts the daemon/service
|
||||
#
|
||||
do_start()
|
||||
{
|
||||
# Return
|
||||
# 0 if daemon has been started
|
||||
# 1 if daemon was already running
|
||||
# 2 if daemon could not be started
|
||||
|
||||
if [ "x$START_DUMP1090" != "xyes" ]; then
|
||||
log_warning_msg "Not starting $NAME daemon, disabled via /etc/default/$NAME"
|
||||
return 2
|
||||
fi
|
||||
|
||||
start-stop-daemon --start --quiet --pidfile $PIDFILE --user "$DUMP1090_USER" --exec $DAEMON --test > /dev/null \
|
||||
|| return 1
|
||||
|
||||
# create JSON_DIR with the appropriate permissions
|
||||
# (it is on /run by default, so will be lost on reboot)
|
||||
if [ "x$JSON_DIR" != "x" ]; then
|
||||
if [ ! -e $JSON_DIR ]; then
|
||||
(mkdir $JSON_DIR && chmod 0755 $JSON_DIR && chown $DUMP1090_USER $JSON_DIR) || log_warning_msg "Failed to create $JSON_DIR"
|
||||
fi
|
||||
fi
|
||||
|
||||
# create logfile with the appropriate permissions if not already there
|
||||
# (the cronjob running as DUMP1090_USER wants to append to it)
|
||||
touch $LOGFILE
|
||||
chown "$DUMP1090_USER":root $LOGFILE
|
||||
|
||||
start-stop-daemon --start $NICELEVEL --quiet --pidfile $PIDFILE --user "$DUMP1090_USER" --chuid "$DUMP1090_USER" --make-pidfile --background --no-close --exec $DAEMON -- \
|
||||
$ARGS >>$LOGFILE 2>&1 \
|
||||
|| return 2
|
||||
sleep 1
|
||||
}
|
||||
|
||||
#
|
||||
# Function that stops the daemon/service
|
||||
#
|
||||
do_stop()
|
||||
{
|
||||
# Return
|
||||
# 0 if daemon has been stopped
|
||||
# 1 if daemon was already stopped
|
||||
# 2 if daemon could not be stopped
|
||||
# other if a failure occurred
|
||||
start-stop-daemon --stop --retry=TERM/30/KILL/5 --pidfile $PIDFILE --user "$DUMP1090_USER" --exec $DAEMON
|
||||
RETVAL="$?"
|
||||
[ "$RETVAL" = 2 ] && return 2
|
||||
sleep 1
|
||||
# Many daemons don't delete their pidfiles when they exit.
|
||||
rm -f $PIDFILE
|
||||
return "$RETVAL"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
|
||||
do_start
|
||||
case "$?" in
|
||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||
esac
|
||||
;;
|
||||
stop)
|
||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
|
||||
do_stop
|
||||
case "$?" in
|
||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||
esac
|
||||
;;
|
||||
status)
|
||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
||||
;;
|
||||
restart|force-reload)
|
||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||
do_stop
|
||||
case "$?" in
|
||||
0|1)
|
||||
do_start
|
||||
case "$?" in
|
||||
0) log_end_msg 0 ;;
|
||||
1) log_end_msg 1 ;; # Old process is still running
|
||||
*) log_end_msg 1 ;; # Failed to start
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
# Failed to stop
|
||||
log_end_msg 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
|
||||
:
|
||||
7
debian/dump1090-mutability.install
vendored
7
debian/dump1090-mutability.install
vendored
|
|
@ -1,7 +0,0 @@
|
|||
public_html/* usr/share/dump1090-mutability/html
|
||||
debian/lighttpd/* etc/lighttpd/conf-available
|
||||
debian/nginx/* etc/nginx/sites-available
|
||||
debian/config-template usr/share/dump1090-mutability
|
||||
debian/cron-template usr/share/dump1090-mutability
|
||||
tools/vrs-basicaircraft-to-json.py usr/share/dump1090-mutability
|
||||
tools/update-aircraft-database.sh usr/share/dump1090-mutability
|
||||
5
debian/dump1090-mutability.logrotate
vendored
5
debian/dump1090-mutability.logrotate
vendored
|
|
@ -1,5 +0,0 @@
|
|||
/var/log/dump1090-mutability.log {
|
||||
weekly
|
||||
rotate 4
|
||||
copytruncate
|
||||
}
|
||||
149
debian/dump1090-mutability.postinst
vendored
149
debian/dump1090-mutability.postinst
vendored
|
|
@ -1,149 +0,0 @@
|
|||
#!/bin/bash
|
||||
# postinst script for dump1090
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
NAME=dump1090-mutability
|
||||
CONFIGFILE=/etc/default/$NAME
|
||||
TEMPLATECONFIG=/usr/share/$NAME/config-template
|
||||
CRONFILE=/etc/cron.d/$NAME
|
||||
TEMPLATECRON=/usr/share/$NAME/cron-template
|
||||
SEDSCRIPT=$CONFIGFILE.sed.tmp
|
||||
|
||||
subvar_raw() {
|
||||
# $1 = db var value
|
||||
# $2 = config var name
|
||||
|
||||
# if not present in the config file, add it
|
||||
test -z "$1" || grep -Eq "^ *$2=" $CONFIGFILE || echo "$2=" >> $CONFIGFILE
|
||||
# add to the sedscript
|
||||
echo "s@^ *$2=.*@$2=\"$1\"@" >>$SEDSCRIPT
|
||||
}
|
||||
|
||||
subvar() {
|
||||
# $1 = db var name
|
||||
# $2 = config var name
|
||||
db_get $NAME/$1
|
||||
subvar_raw "$RET" "$2"
|
||||
}
|
||||
|
||||
subvar_yn() {
|
||||
# $1 = db var name
|
||||
# $2 = config var name
|
||||
db_get $NAME/$1
|
||||
if [ "$RET" = "true" ]; then subvar_raw "yes" "$2"; else subvar_raw "no" "$2"; fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
. /usr/share/debconf/confmodule
|
||||
|
||||
# Generate config file, if it doesn't exist.
|
||||
if [ ! -e $CONFIGFILE ]; then
|
||||
tail -n +4 $TEMPLATECONFIG >$CONFIGFILE
|
||||
fi
|
||||
|
||||
rm -f $SEDSCRIPT
|
||||
|
||||
subvar_yn auto-start START_DUMP1090
|
||||
subvar run-as-user DUMP1090_USER
|
||||
subvar log-file LOGFILE
|
||||
subvar rtlsdr-device DEVICE
|
||||
subvar rtlsdr-gain GAIN
|
||||
subvar rtlsdr-ppm PPM
|
||||
subvar_yn rtlsdr-oversample OVERSAMPLE
|
||||
subvar_yn decode-fixcrc FIX_CRC
|
||||
subvar_yn decode-phase-enhance PHASE_ENHANCE
|
||||
subvar_yn decode-aggressive AGGRESSIVE
|
||||
subvar decode-lat LAT
|
||||
subvar decode-lon LON
|
||||
subvar decode-max-range MAX_RANGE
|
||||
subvar net-http-port HTTP_PORT
|
||||
subvar net-ri-port RAW_INPUT_PORT
|
||||
subvar net-ro-port RAW_OUTPUT_PORT
|
||||
subvar net-bi-port BEAST_INPUT_PORT
|
||||
subvar net-bo-port BEAST_OUTPUT_PORT
|
||||
subvar net-sbs-port SBS_OUTPUT_PORT
|
||||
subvar net-fatsv-port FATSV_OUTPUT_PORT
|
||||
subvar net-heartbeat NET_HEARTBEAT
|
||||
subvar net-out-size NET_OUTPUT_SIZE
|
||||
subvar net-out-interval NET_OUTPUT_INTERVAL
|
||||
subvar net-buffer NET_BUFFER
|
||||
subvar net-bind-address NET_BIND_ADDRESS
|
||||
subvar stats-interval STATS_INTERVAL
|
||||
subvar json-dir JSON_DIR
|
||||
subvar json-interval JSON_INTERVAL
|
||||
subvar json-location-accuracy JSON_LOCATION_ACCURACY
|
||||
subvar_yn log-decoded-messages LOG_DECODED_MESSAGES
|
||||
subvar extra-args EXTRA_ARGS
|
||||
|
||||
cp -a -f $CONFIGFILE $CONFIGFILE.tmp
|
||||
sed -f $SEDSCRIPT < $CONFIGFILE > $CONFIGFILE.tmp
|
||||
mv -f $CONFIGFILE.tmp $CONFIGFILE
|
||||
rm $SEDSCRIPT
|
||||
|
||||
db_get $NAME/run-as-user
|
||||
RUNAS="$RET"
|
||||
if ! getent passwd "$RUNAS" >/dev/null
|
||||
then
|
||||
adduser --system --home /usr/share/$NAME --no-create-home --quiet "$RUNAS"
|
||||
fi
|
||||
|
||||
# create log if missing; change ownership if needed so the cronjob works
|
||||
db_get $NAME/log-file
|
||||
touch $RET
|
||||
chown $RUNAS $RET
|
||||
|
||||
# create cronjob
|
||||
if ! test -e $CRONFILE; then
|
||||
echo "Creating cronjob in $CRONFILE to periodically update the aircraft database.." >&2
|
||||
MIN=$(($RANDOM % 60))
|
||||
tail -n +4 $TEMPLATECRON | sed -e "s/@USER@/$RUNAS/g" -e "s/@MIN@/$MIN/g" >$CRONFILE
|
||||
fi
|
||||
|
||||
# update the DB
|
||||
echo "Updating aircraft database now.."
|
||||
mkdir -m 0755 -p /var/cache/$NAME
|
||||
chown $RUNAS /var/cache/$NAME
|
||||
su $RUNAS -s /bin/bash -c /usr/share/$NAME/update-aircraft-database.sh || \
|
||||
echo "Aircraft database update failed. It will be retried periodically from cron." >&2
|
||||
|
||||
# config file changed between 1.14 and 1.15
|
||||
if [ -e /etc/lighttpd/conf-enabled/89-dump1090.conf ]; then
|
||||
if dpkg --compare-versions "$2" le "1.14"; then
|
||||
echo "Restarting lighttpd.." >&2
|
||||
invoke-rc.d lighttpd restart || echo "Warning: lighttpd failed to restart." >&2
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
if [ "$1" = "configure" ]; then db_stop; fi
|
||||
exit 0
|
||||
338
debian/dump1090-mutability.templates
vendored
338
debian/dump1090-mutability.templates
vendored
|
|
@ -1,338 +0,0 @@
|
|||
Template: dump1090-mutability/auto-start
|
||||
Description: Start dump1090 automatically?
|
||||
dump1090 can be started automatically via an init-script.
|
||||
Otherwise, the init-script does nothing; you must run dump1090 by hand.
|
||||
.
|
||||
You can modify the options used when automatically starting
|
||||
dump1090 by running "dpkg-reconfigure dump1090-mutability" as root,
|
||||
or by editing /etc/default/dump1090-mutability.
|
||||
Type: boolean
|
||||
Default: true
|
||||
|
||||
Template: dump1090-mutability/run-as-user
|
||||
Description: User to run dump1090 as:
|
||||
When started automatically, dump1090 runs as an unprivileged system user.
|
||||
This user will be created if it does not yet exist.
|
||||
Type: string
|
||||
Default: dump1090
|
||||
|
||||
Template: dump1090-mutability/log-file
|
||||
Description: Path to log to:
|
||||
When started automatically, dump1090 will log its output somewhere. This
|
||||
log will contain any startup errors, and periodic statistics reports.
|
||||
Type: string
|
||||
Default: /var/log/dump1090-mutability.log
|
||||
|
||||
Template: dump1090-mutability/rtlsdr-device
|
||||
Description: RTL-SDR dongle to use:
|
||||
If you have only one dongle connected, you can leave this blank.
|
||||
.
|
||||
Otherwise, you can provide the serial number (more reliable) or device
|
||||
index (first device = 0, but the ordering is unpredictable) to choose
|
||||
a particular dongle to use.
|
||||
.
|
||||
To run dump1090 in "net only" mode, specify the literal word "none".
|
||||
Type: string
|
||||
Default:
|
||||
|
||||
Template: dump1090-mutability/rtlsdr-gain
|
||||
Description: RTL-SDR gain, in dB:
|
||||
The tuner gain used by dump1090 can be provided as a value in dB, or
|
||||
"max" to use the maximum gain available, or "agc" to use the tuner's AGC to
|
||||
control the gain. If unsure, choose "max".
|
||||
Type: string
|
||||
Default: max
|
||||
|
||||
Template: dump1090-mutability/rtlsdr-ppm
|
||||
Description: RTL-SDR frequency correction, in PPM:
|
||||
The oscillator in each RTL-SDL dongle is not perfectly accurate. You can
|
||||
choose a correction factor, in parts-per-million, to correct for this. The
|
||||
correction factor varies from dongle to dongle, and also varies with operating
|
||||
temperature. You can find a suitable value with "rtl_test -p" or "kalibrate".
|
||||
If you don't know the value for your dongle, choose 0.
|
||||
Type: string
|
||||
Default: 0
|
||||
|
||||
Template: dump1090-mutability/rtlsdr-oversample
|
||||
Description: Enable oversampling at 2.4MHz?
|
||||
Originally, dump1090 would decode incoming signals by sampling at 2MHz. Newer
|
||||
versions also support sampling at 2.4MHz. This may increase the number of
|
||||
decodable messages, but takes slightly more CPU and is not as well tested.
|
||||
Type: boolean
|
||||
Default: true
|
||||
|
||||
Template: dump1090-mutability/decode-fixcrc
|
||||
Description: Fix detected CRC errors?
|
||||
dump1090 can fix unambiguous single-bit CRC errors detected in received
|
||||
messages. This allows weaker messages to be decoded. It can slightly increase
|
||||
the rate of undetected errors, but this is not usually significant.
|
||||
Type: boolean
|
||||
Default: true
|
||||
|
||||
Template: dump1090-mutability/decode-phase-enhance
|
||||
Description: Apply phase enhancement?
|
||||
dump1090 can attempt to correct for messages that are received
|
||||
out-of-phase from the sampling rate, at the expense of taking more CPU.
|
||||
Type: boolean
|
||||
Default: true
|
||||
|
||||
Template: dump1090-mutability/decode-aggressive
|
||||
Description: Aggressively fix more errors?
|
||||
dump1090 can apply more aggressive corrections to received messages,
|
||||
primarily correcting two-bit CRC errors.
|
||||
.
|
||||
Use with caution! This can significantly increase the rate of undetected
|
||||
message errors (i.e. increase the rate of garbled decoded messages)
|
||||
Type: boolean
|
||||
Default: false
|
||||
|
||||
Template: dump1090-mutability/decode-lat
|
||||
Description: Latitude of receiver, in decimal degrees:
|
||||
If the location of the receiver is provided, dump1090 can do
|
||||
local position decoding in cases where insufficient position messages are
|
||||
received for unambiguous global position decoding.
|
||||
Type: string
|
||||
Default:
|
||||
|
||||
Template: dump1090-mutability/decode-lon
|
||||
Description: Longitude of receiver, in decimal degrees:
|
||||
If the location of the receiver is provided, dump1090 can do
|
||||
local position decoding in cases where insufficient position messages are
|
||||
received for unambiguous global position decoding.
|
||||
Type: string
|
||||
Default:
|
||||
|
||||
Template: dump1090-mutability/decode-max-range
|
||||
Description: Absolute maximum range of receiver, in nautical miles:
|
||||
If the maximum range of the receiver is provided, dump1090 can filter
|
||||
out impossible position reports that are due to aircraft that transmit
|
||||
bad data.
|
||||
.
|
||||
Additionally, if the maximum range is larger than 180NM, when local
|
||||
position decoding is used (when insufficient position messages
|
||||
have been received for global position decoding), it is limited to
|
||||
only those positions that would unambiguously decode to a single
|
||||
position within the given receiver range.
|
||||
.
|
||||
This range should be the absolute maximum range - any position data
|
||||
from further away will be entirely discarded!
|
||||
Type: string
|
||||
Default: 300
|
||||
|
||||
Template: dump1090-mutability/net-http-port
|
||||
Description: Port for internal webserver (0 disables):
|
||||
dump1090 can provide an internal webserver that serves a basic "virtual
|
||||
radar" map.
|
||||
.
|
||||
It is generally a better idea to use an external webserver, but if you
|
||||
really want to use the internal one, you can select a port to listen
|
||||
on here.
|
||||
Type: string
|
||||
Default: 0
|
||||
|
||||
Template: dump1090-mutability/net-ri-port
|
||||
Description: Port for AVR-format input connections (0 disables):
|
||||
dump1090 can accept connections to receive data from other sources in
|
||||
several formats. This setting controls the port dump1090 will listen
|
||||
on for AVR ("raw") format input connections.
|
||||
Type: string
|
||||
Default: 30001
|
||||
|
||||
Template: dump1090-mutability/net-ro-port
|
||||
Description: Port for AVR-format output connections (0 disables):
|
||||
dump1090 can forward ADS-B messages to other software in several formats.
|
||||
This setting controls the port dump1090 will listen on for AVR ("raw")
|
||||
format output connections.
|
||||
Type: string
|
||||
Default: 30002
|
||||
|
||||
Template: dump1090-mutability/net-bi-port
|
||||
Description: Port for Beast-format input connections (0 disables):
|
||||
dump1090 can accept connections to receive data from other sources in
|
||||
several formats. This setting controls the port dump1090 will listen
|
||||
on for Beast ("binary") format input connections.
|
||||
Type: string
|
||||
Default: 30004
|
||||
|
||||
Template: dump1090-mutability/net-bo-port
|
||||
Description: Port for Beast-format output connections (0 disables):
|
||||
dump1090 can forward ADS-B messages to other software in several formats.
|
||||
This setting controls the port dump1090 will listen on for Beast ("binary")
|
||||
format output connections.
|
||||
Type: string
|
||||
Default: 30005
|
||||
|
||||
Template: dump1090-mutability/net-sbs-port
|
||||
Description: Port for SBS-format output connections (0 disables):
|
||||
dump1090 can forward ADS-B messages to other software in several formats.
|
||||
This setting controls the port dump1090 will listen on for SBS BaseStation
|
||||
format output connections.
|
||||
Type: string
|
||||
Default: 30003
|
||||
|
||||
Template: dump1090-mutability/net-fatsv-port
|
||||
Description: Port for FATSV-format output connections (0 disables):
|
||||
dump1090 can forward ADS-B messages to other software in several formats.
|
||||
This setting controls the port dump1090 will listen on for FlightAware TSV
|
||||
format output connections.
|
||||
Type: string
|
||||
Default: 10001
|
||||
|
||||
Template: dump1090-mutability/net-heartbeat
|
||||
Description: Seconds between heartbeat messages (0 disables):
|
||||
If there is no other data sent on a network connection, dump1090 can
|
||||
periodically send an empty heartbeat message to ensure that the
|
||||
connection stays established. This setting controls the interval
|
||||
betweeen heartbeat messages.
|
||||
Type: string
|
||||
Default: 60
|
||||
|
||||
Template: dump1090-mutability/net-out-size
|
||||
Description: Minimum output message size:
|
||||
To avoid sending many small network messages, output connections will
|
||||
accumulate data waiting to be sent until either a minimum size is reached
|
||||
or a maximum delay is reached. This setting controls the minimum size,
|
||||
in bytes.
|
||||
Type: string
|
||||
Default: 500
|
||||
|
||||
Template: dump1090-mutability/net-out-interval
|
||||
Description: Maximum output buffering time:
|
||||
To avoid sending many small network messages, output connections will
|
||||
buffer data waiting to be sent until either a minimum size is reached
|
||||
or a maximum delay is reached. This setting controls the maximum delay,
|
||||
in seconds.
|
||||
Type: string
|
||||
Default: 1
|
||||
|
||||
Template: dump1090-mutability/net-buffer
|
||||
Description: SO_SNDBUF size:
|
||||
Here you can specify the TCP send buffer size to use on network connections.
|
||||
Type: select
|
||||
Choices: 65536, 131072, 262144
|
||||
Default: 262144
|
||||
|
||||
Template: dump1090-mutability/net-bind-address
|
||||
Description: Interface address to bind to (blank for all interfaces):
|
||||
If you want to limit incoming connections to a particular interface,
|
||||
specify the interface address here. A blank value will bind to the wildcard
|
||||
address, allowing connections on all interfaces.
|
||||
.
|
||||
The default value of 127.0.0.1 will allow connections only on localhost,
|
||||
i.e. only connections that originate on the same machine.
|
||||
Type: string
|
||||
Default: 127.0.0.1
|
||||
|
||||
Template: dump1090-mutability/stats-interval
|
||||
Description: Interval between logging stats, in seconds:
|
||||
dump1090 will periodically log message reception stats to its logfile.
|
||||
This setting controls how often that is done.
|
||||
Type: string
|
||||
Default: 3600
|
||||
|
||||
Template: dump1090-mutability/json-dir
|
||||
Description: Directory to write JSON aircraft state to:
|
||||
As this can be written frequently, you should select a location
|
||||
that is not on a sdcard. The default path under /run is on tmpfs
|
||||
and will not write to the sdcard.
|
||||
.
|
||||
A blank path disables writing JSON state.
|
||||
Type: string
|
||||
Default: /run/dump1090-mutability
|
||||
|
||||
Template: dump1090-mutability/json-interval
|
||||
Description: Interval between writing JSON aircraft state, in seconds:
|
||||
dump1090 periodically write a list of aircraft, in JSON format, for use
|
||||
by the virtual radar view when using an external webserver. This setting
|
||||
controls the directory to write to.
|
||||
.
|
||||
Here you can control how often the JSON state is updated, which determines
|
||||
how frequently the virtual radar view updates.
|
||||
Type: string
|
||||
Default: 1
|
||||
|
||||
Template: dump1090-mutability/json-location-accuracy
|
||||
Description: Receiver location accuracy to show in the web interface:
|
||||
dump1090 can provide the configured receiver location to the web map,
|
||||
so that the map can show distances from the receiver.
|
||||
.
|
||||
For privacy reasons, if you are making the map publicly available you
|
||||
may not want to show the exact location of the receiver. There are three
|
||||
options available to control what is shown:
|
||||
.
|
||||
approximate: dump1090 will provide the receiver location rounded to the
|
||||
nearest 0.01 degree of latitude and longitude. This gives a location
|
||||
that is accurate to within about 0.5 - 1km.
|
||||
.
|
||||
exact: dump1090 will provide the exact receiver location.
|
||||
.
|
||||
none: dump1090 will not provide the receiver location at all; distance
|
||||
display will be disabled.
|
||||
Type: select
|
||||
Choices: approximate, exact, none
|
||||
Default: approximate
|
||||
|
||||
Template: dump1090-mutability/log-decoded-messages
|
||||
Description: Log all decoded messages?
|
||||
dump1090 can log all decoded messages as text to the logfile.
|
||||
This can result in a very large logfile! Usually you don't need this.
|
||||
Type: boolean
|
||||
Default: false
|
||||
|
||||
Template: dump1090-mutability/extra-args
|
||||
Description: Extra arguments to pass to dump1090:
|
||||
Here you can add any extra arguments you want to pass to dump1090.
|
||||
Type: string
|
||||
Default:
|
||||
|
||||
Template: dump1090-mutability/invalid-is_unsigned_int
|
||||
Description: Value must be an unsigned integer.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_unsigned_int_or_empty
|
||||
Description: Value must be an unsigned integer, or blank.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_positive_int
|
||||
Description: Value must be a positive integer.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_signed_int
|
||||
Description: Value must be an integer.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_signed_int_or_empty
|
||||
Description: Value must be an integer, or blank.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_not_empty
|
||||
Description: Value cannot be empty.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_port_number
|
||||
Description: Value must be a valid port number (1024-65535), or zero to disable.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_ipaddrish_or_empty
|
||||
Description: Value must be an IP address or empty.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_number
|
||||
Description: Value must be a decimal number
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_number_or_empty
|
||||
Description: Value must be a decimal number or empty.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_unsigned_number
|
||||
Description: Value must be a non-negative number.
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_valid_gain
|
||||
Description: Value must be a numeric gain value, or "max", or "agc".
|
||||
Type: error
|
||||
|
||||
Template: dump1090-mutability/invalid-is_non_root_user
|
||||
Description: Value must be a username (without spaces) that isn't root.
|
||||
Type: error
|
||||
|
|
@ -2,15 +2,10 @@
|
|||
# and also to the dynamically-generated json parts that contain aircraft
|
||||
# data and are periodically written by the dump1090 daemon.
|
||||
|
||||
url.redirect += (
|
||||
"^/dump1090/$" => "/dump1090/gmap.html",
|
||||
"^/dump1090$" => "/dump1090/gmap.html"
|
||||
)
|
||||
|
||||
alias.url += (
|
||||
"/dump1090/data/" => "/run/dump1090-mutability/",
|
||||
"/dump1090/db/" => "/var/cache/dump1090-mutability/db/",
|
||||
"/dump1090/" => "/usr/share/dump1090-mutability/html/"
|
||||
"/dump1090-fa/data/" => "/run/dump1090-fa/",
|
||||
"/dump1090-fa/db/" => "/var/cache/dump1090-fa/db/",
|
||||
"/dump1090-fa/" => "/usr/share/dump1090-fa/html/"
|
||||
)
|
||||
|
||||
# The stat cache must be disabled, as aircraft.json changes
|
||||
19
debian/nginx/dump1090-mutability
vendored
19
debian/nginx/dump1090-mutability
vendored
|
|
@ -1,19 +0,0 @@
|
|||
# Allows access to the static files that provide the dump1090 map view,
|
||||
# and also to the dynamically-generated json parts that contain aircraft
|
||||
# data and are periodically written by the dump1090 daemon.
|
||||
#
|
||||
server{
|
||||
rewrite ^/dump1090/$ /dump1090/gmap.html permanent;
|
||||
rewrite ^/dump1090$ /dump1090/gmap.html permanent;
|
||||
|
||||
location /dump1090/ {
|
||||
alias /usr/share/dump1090-mutability/html/;
|
||||
}
|
||||
location /dump1090/data/ {
|
||||
alias /run/dump1090-mutability/;
|
||||
}
|
||||
location /dump1090/db/ {
|
||||
alias /var/cache/dump1090-mutability/db/;
|
||||
}
|
||||
}
|
||||
|
||||
10
debian/rules
vendored
10
debian/rules
vendored
|
|
@ -18,13 +18,13 @@ export DUMP1090_VERSION=$(shell dpkg-parsechangelog | sed -n 's/^Version: /v/p')
|
|||
SRCNAME=$(shell dpkg-parsechangelog | sed -n 's/^Source: //p')
|
||||
|
||||
override_dh_auto_build:
|
||||
dh_auto_build -- 'EXTRACFLAGS=-DHTMLPATH=\"/usr/share/dump1090-mutability/html\" -DMODES_DUMP1090_VARIANT=\"$(SRCNAME)\"'
|
||||
dh_auto_build -- 'EXTRACFLAGS=-DHTMLPATH=\"/usr/share/$(SRCNAME)/html\" -DMODES_DUMP1090_VARIANT=\"$(SRCNAME)\"'
|
||||
|
||||
override_dh_install:
|
||||
dh_install
|
||||
install -d debian/dump1090-mutability/usr/bin
|
||||
cp -a dump1090 debian/dump1090-mutability/usr/bin/dump1090-mutability
|
||||
cp -a view1090 debian/dump1090-mutability/usr/bin/view1090-mutability
|
||||
install -d debian/dump1090-fa/usr/bin
|
||||
cp -a dump1090 debian/dump1090-fa/usr/bin/dump1090-fa
|
||||
cp -a view1090 debian/dump1090-fa/usr/bin/view1090-fa
|
||||
|
||||
%:
|
||||
dh $@
|
||||
dh $@ --with=systemd
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue