Overhaul of /etc/default/dump1090-fa
Now we have specific config options for different features rather than just a big list of command-line options. You can still provide custom options via EXTRA_OPTIONS or OVERRIDE_OPTIONS. Also adds adaptive gain settings, and a "slow cpu" setting which can turn on cpu-reducing options automatically when a slower (armv6) CPU is in use.
This commit is contained in:
parent
3069f3d99f
commit
ec69b94544
|
|
@ -2,20 +2,56 @@
|
|||
# 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
|
||||
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"
|
||||
# SDR device type. Use "none" for a net-only configuration
|
||||
RECEIVER=rtlsdr
|
||||
# serial number or device index of device to use (only needed if there is more than one SDR connected)
|
||||
RECEIVER_SERIAL=
|
||||
# Initial receiver gain, in dB. If adaptive gain is enabled (see below) the actual gain
|
||||
# may change over time
|
||||
RECEIVER_GAIN=60
|
||||
|
||||
# Use a machine-specific wisdom file if it exists
|
||||
if [ -f /etc/dump1090-fa/wisdom.local ]
|
||||
then
|
||||
RECEIVER_OPTIONS="${RECEIVER_OPTIONS} --wisdom /etc/dump1090-fa/wisdom.local"
|
||||
fi
|
||||
# Adjust gain to try to achieve optimal dynamic range / noise floor?
|
||||
ADAPTIVE_DYNAMIC_RANGE=yes
|
||||
# Reduce gain when loud message bursts from nearby aircraft are seen?
|
||||
ADAPTIVE_BURST=no
|
||||
# Gain range to allow when changing gain, in dB (empty = no limit)
|
||||
ADAPTIVE_MIN_GAIN=
|
||||
ADAPTIVE_MAX_GAIN=
|
||||
|
||||
# Turn on options to reduce load on slower CPUs, at the expense of slightly worse decoder performance.
|
||||
# Setting "auto" will enable these options only if the CPU appears to be a slow CPU (currently this
|
||||
# means armv6 only, e.g. Pi Zero)
|
||||
SLOW_CPU=auto
|
||||
# Local wisdom file used to select DSP implementations; uses built-in ranking if the file is missing
|
||||
WISDOM=/etc/dump1090-fa/wisdom.local
|
||||
|
||||
# Correct CRC errors where possible
|
||||
ERROR_CORRECTION=yes
|
||||
|
||||
# Receiver location, used for some types of position decoding. Provide the location as
|
||||
# signed decimal degrees. If not given here, dump1090 will also try to read a receiver
|
||||
# location from /var/cache/piaware/location.env (written automatically by PiAware, if installed)
|
||||
RECEIVER_LAT=
|
||||
RECEIVER_LON=
|
||||
# Maximum range, in NM. Positions more distant than this are ignored. No limit if not set.
|
||||
MAX_RANGE=360
|
||||
|
||||
# Network ports to listen on for connections
|
||||
NET_RAW_INPUT_PORTS=
|
||||
NET_RAW_OUTPUT_PORTS=30002
|
||||
NET_SBS_OUTPUT_PORTS=30003
|
||||
NET_BEAST_INPUT_PORTS=30004,30104
|
||||
NET_BEAST_OUTPUT_PORTS=30005
|
||||
|
||||
# Accuracy of location written to JSON output
|
||||
JSON_LOCATION_ACCURACY=1
|
||||
|
||||
# Additional options can be added here:
|
||||
EXTRA_OPTIONS=""
|
||||
|
||||
# If OVERRIDE_OPTIONS is set, only those options are used; all other options
|
||||
# in this config file are ignored.
|
||||
OVERRIDE_OPTIONS=""
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ After=network.target
|
|||
User=dump1090
|
||||
RuntimeDirectory=dump1090-fa
|
||||
RuntimeDirectoryMode=0755
|
||||
ExecStart=/usr/share/dump1090-fa/start-dump1090-fa --write-json %t/dump1090-fa --quiet
|
||||
ExecStart=/usr/share/dump1090-fa/start-dump1090-fa --write-json %t/dump1090-fa
|
||||
SyslogIdentifier=dump1090-fa
|
||||
Type=simple
|
||||
Restart=on-failure
|
||||
|
|
|
|||
|
|
@ -15,19 +15,71 @@ then
|
|||
. /var/cache/piaware/location.env
|
||||
fi
|
||||
|
||||
if [ "x$ENABLED" != "xyes" ]
|
||||
if [ "$ENABLED" != "yes" ]
|
||||
then
|
||||
echo "dump1090-fa not enabled in /etc/default/dump1090-fa" >&2
|
||||
exit 64
|
||||
fi
|
||||
|
||||
if [ -n "$PIAWARE_LAT" -a -n "$PIAWARE_LON" ]
|
||||
# process options
|
||||
|
||||
is_slow_cpu() {
|
||||
case "$SLOW_CPU" in
|
||||
yes) return 0 ;;
|
||||
auto)
|
||||
case $(uname -m) in
|
||||
armv6*) return 0 ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
OPTS="--quiet"
|
||||
|
||||
if [ "${RECEIVER:-none}" = "none" ]
|
||||
then
|
||||
POSITION="--lat $PIAWARE_LAT --lon $PIAWARE_LON"
|
||||
OPTS="$OPTS --device-type none"
|
||||
else
|
||||
if [ -n "$RECEIVER" ]; then OPTS="$OPTS --device-type $RECEIVER"; fi
|
||||
if [ -n "$RECEIVER_SERIAL" ]; then OPTS="$OPTS --device-index $RECEIVER_SERIAL"; fi
|
||||
if [ -n "$RECEIVER_GAIN" ]; then OPTS="$OPTS --gain $RECEIVER_GAIN"; fi
|
||||
if [ -n "$WISDOM" -a -f "$WISDOM" ]; then OPTS="$OPTS --wisdom $WISDOM"; fi
|
||||
|
||||
if [ "$ADAPTIVE_DYNAMIC_RANGE" = "yes" ]; then OPTS="$OPTS --adaptive-range"; fi
|
||||
if [ "$ADAPTIVE_BURST" = "yes" ]; then OPTS="$OPTS --adaptive-burst"; fi
|
||||
if [ -n "$ADAPTIVE_MIN_GAIN" ]; then OPTS="$OPTS --adaptive-min-gain $ADAPTIVE_MIN_GAIN"; fi
|
||||
if [ -n "$ADAPTIVE_MAX_GAIN" ]; then OPTS="$OPTS --adaptive-max-gain $ADAPTIVE_MAX_GAIN"; fi
|
||||
|
||||
if is_slow_cpu
|
||||
then
|
||||
OPTS="$OPTS --adaptive-duty-cycle 10 --no-fix-df"
|
||||
fi
|
||||
fi
|
||||
|
||||
exec /usr/bin/dump1090-fa \
|
||||
$RECEIVER_OPTIONS $DECODER_OPTIONS $NET_OPTIONS $JSON_OPTIONS $POSITION \
|
||||
"$@"
|
||||
if [ "$ERROR_CORRECTION" = "yes" ]; then OPTS="$OPTS --fix"; fi
|
||||
|
||||
if [ -n "$RECEIVER_LAT" -a -n "$RECEIVER_LON" ]; then
|
||||
OPTS="$OPTS --lat $RECEIVER_LAT --lon $RECEIVER_LON"
|
||||
elif [ -n "$PIAWARE_LAT" -a -n "$PIAWARE_LON" ]; then
|
||||
OPTS="$OPTS --lat $PIAWARE_LAT --lon $PIAWARE_LON"
|
||||
fi
|
||||
|
||||
if [ -n "$MAX_RANGE" ]; then OPTS="$OPTS --max-range $MAX_RANGE"; fi
|
||||
|
||||
if [ -n "$NET_RAW_INPUT_PORTS" ]; then OPTS="$OPTS --net-ri-port $NET_RAW_INPUT_PORTS"; fi
|
||||
if [ -n "$NET_RAW_OUTPUT_PORTS" ]; then OPTS="$OPTS --net-ro-port $NET_RAW_OUTPUT_PORTS"; fi
|
||||
if [ -n "$NET_SBS_OUTPUT_PORTS" ]; then OPTS="$OPTS --net-sbs-port $NET_SBS_OUTPUT_PORTS"; fi
|
||||
if [ -n "$NET_BEAST_INPUT_PORTS" ]; then OPTS="$OPTS --net-bi-port $NET_BEAST_INPUT_PORTS"; fi
|
||||
if [ -n "$NET_BEAST_OUTPUT_PORTS" ]; then OPTS="$OPTS --net-bo-port $NET_BEAST_OUTPUT_PORTS"; fi
|
||||
|
||||
if [ -n "$JSON_LOCATION_ACCURACY" ]; then OPTS="$OPTS --json-location-accuracy $JSON_LOCATION_ACCURACY"; fi
|
||||
|
||||
if [ -n "$EXTRA_OPTIONS" ]; then OPTS="$OPTS $EXTRA_OPTIONS"; fi
|
||||
|
||||
if [ -n "$OVERRIDE_OPTIONS" ]; then OPTS="$OVERRIDE_OPTIONS"; fi
|
||||
|
||||
exec /usr/bin/dump1090-fa $OPTS "$@"
|
||||
# exec failed, do not restart
|
||||
exit 64
|
||||
|
|
|
|||
Loading…
Reference in New Issue