Browse Source

Replace dump1090 with readsb.

tags/5.1.0
Luigi Cruz 3 years ago
parent
commit
7149d8e062
5 changed files with 191 additions and 4 deletions
  1. +132
    -4
      stage4/32-pisdr-dump1090/00-run.sh
  2. +27
    -0
      stage4/32-pisdr-dump1090/targets/configure_fr24feed.sh
  3. +22
    -0
      stage4/32-pisdr-dump1090/targets/configure_rbfeeder.sh
  4. +5
    -0
      stage4/32-pisdr-dump1090/targets/disable.sh
  5. +5
    -0
      stage4/32-pisdr-dump1090/targets/enable.sh

+ 132
- 4
stage4/32-pisdr-dump1090/00-run.sh View File

@@ -2,13 +2,141 @@

on_chroot << EOF
mkdir -p "/home/${FIRST_USER_NAME}/PiSDR/Software"
cd "/home/${FIRST_USER_NAME}/PiSDR/Software"
cd "/home/${FIRST_USER_NAME}/PiSDR/Software"

if [ ! -d "dump1090" ]; then
git clone --depth 1 https://github.com/antirez/dump1090.git
mkdir -p "/home/${FIRST_USER_NAME}/PiSDR/Software/dump1090"
fi

install -v -o 1000 -g 1000 -m 755 targets/enable.sh "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PiSDR/Software/dump1090"
install -v -o 1000 -g 1000 -m 755 targets/disable.sh "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PiSDR/Software/dump1090"
install -v -o 1000 -g 1000 -m 755 targets/configure_rbfeeder.sh "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PiSDR/Software/dump1090"
install -v -o 1000 -g 1000 -m 755 targets/configure_fr24feed.sh "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/PiSDR/Software/dump1090"

cd dump1090
make -j$(nproc)
cp dump1090 /usr/bin/

repository="https://github.com/wiedehopf/readsb.git"

apt-get update
apt-get install --no-install-recommends --no-install-suggests -y git build-essential debhelper libusb-1.0-0-dev \
pkg-config dh-systemd libncurses5-dev lighttpd zlib1g-dev zlib1g unzip

rm -rf "$ipath"/git
if ! git clone --branch stale --depth 1 "$repository" "$ipath/git"
then
echo "Unable to git clone the repository"
exit 1
fi

rm -rf "$ipath"/readsb*.deb

cd "$ipath/git"

sed -i 's/librtlsdr0, librtlsdr-dev, //g' debian/control

export DEB_BUILD_OPTIONS=noddebs
if ! dpkg-buildpackage -b -Prtlsdr -ui -uc -us
then
echo "Something went wrong building the debian package, exiting!"
exit 1
fi

echo "Installing the Package"
if ! dpkg -i ../readsb_*.deb
then
echo "Something went wrong installing the debian package, exiting!"
exit 1
fi
echo "Package installed!"

cp -n debian/lighttpd/* /etc/lighttpd/conf-available

# script to change gain

mkdir -p /usr/local/bin
cat >/usr/local/bin/readsb-gain <<"EOF"
#!/bin/bash
gain=$(echo $1 | tr -cd '[:digit:].-')
if [[ $gain == "" ]]; then echo "Error, invalid gain!"; exit 1; fi
if ! grep gain /etc/default/readsb &>/dev/null; then sed -i -e 's/RECEIVER_OPTIONS="/RECEIVER_OPTIONS="--gain 49.6 /' /etc/default/readsb; fi
sudo sed -i -E -e "s/--gain .?[0-9]*.?[0-9]* /--gain $gain /" /etc/default/readsb
sudo systemctl restart readsb
EOF
chmod a+x /usr/local/bin/readsb-gain

# set-location
cat >/usr/local/bin/readsb-set-location <<"EOF"
#!/bin/bash

lat=$(echo $1 | tr -cd '[:digit:].-')
lon=$(echo $2 | tr -cd '[:digit:].-')

if ! awk "BEGIN{ exit ($lat > 90) }" || ! awk "BEGIN{ exit ($lat < -90) }"; then
echo
echo "Invalid latitude: $lat"
echo "Latitude must be between -90 and 90"
echo
echo "Example format for latitude: 51.528308"
echo
echo "Usage:"
echo "readsb-set-location 51.52830 -0.38178"
echo
exit 1
fi
if ! awk "BEGIN{ exit ($lon > 180) }" || ! awk "BEGIN{ exit ($lon < -180) }"; then
echo
echo "Invalid longitude: $lon"
echo "Longitude must be between -180 and 180"
echo
echo "Example format for latitude: -0.38178"
echo
echo "Usage:"
echo "readsb-set-location 51.52830 -0.38178"
echo
exit 1
fi

echo
echo "setting Latitude: $lat"
echo "setting Longitude: $lon"
echo
if ! grep -e '--lon' /etc/default/readsb &>/dev/null; then sed -i -e 's/DECODER_OPTIONS="/DECODER_OPTIONS="--lon -0.38178 /' /etc/default/readsb; fi
if ! grep -e '--lat' /etc/default/readsb &>/dev/null; then sed -i -e 's/DECODER_OPTIONS="/DECODER_OPTIONS="--lat 51.52830 /' /etc/default/readsb; fi
sed -i -E -e "s/--lat .?[0-9]*.?[0-9]* /--lat $lat /" /etc/default/readsb
sed -i -E -e "s/--lon .?[0-9]*.?[0-9]* /--lon $lon /" /etc/default/readsb
systemctl restart readsb
EOF
chmod a+x /usr/local/bin/readsb-set-location

echo --------------
cd "$ipath"

wget -O tar1090-install.sh https://raw.githubusercontent.com/wiedehopf/tar1090/master/install.sh
bash tar1090-install.sh /run/readsb

if ! systemctl show readsb | grep 'ExecMainStatus=0' -qs; then
echo --------------
echo --------------
journalctl -u readsb | tail -n30
echo --------------
echo --------------
echo "ERROR: readsb service didn't start, if inquiring about the issue please post the above 30 lines of log!"
echo " common issues: SDR not plugged in."
echo " the webinterface will show an error until readsb is running!"
echo --------------
fi

echo --------------

echo "[PiSDR] Disabling services. To enable them, run 'bash enable.sh'."

systemctl disable --now readsb
systemctl disable --now tar1090
systemctl disable --now lighttpd

echo "[PiSDR] Deleting build files to save space."

rm -fr /usr/local/share/tar1090/git-db
rm -fr /usr/local/share/tar1090/git

EOF

+ 27
- 0
stage4/32-pisdr-dump1090/targets/configure_fr24feed.sh View File

@@ -0,0 +1,27 @@
#!/bin/bash

# configure fr24feed to use readsb

systemctl stop fr24feed &>/dev/null

rm -f /etc/lighttpd/conf-enabled/89-dump1090.conf

apt-get remove -y dump1090-mutability &>/dev/null
apt-get remove -y dump1090 &>/dev/null
apt-get remove -y dump1090-fa &>/dev/null

if [ -f /etc/fr24feed.ini ]
then
chmod a+rw /etc/fr24feed.ini
cp -n /etc/fr24feed.ini /usr/local/share/adsb-wiki
if ! grep host /etc/fr24feed.ini &>/dev/null; then sed -i -e '/fr24key/a host=' /etc/fr24feed.ini; fi
sed -i -e 's/receiver=.*/receiver="beast-tcp"\r/' -e 's/host=.*/host="127.0.0.1:30005"\r/' -e 's/bs=.*/bs="no"\r/' -e 's/raw=.*/raw="no"\r/' /etc/fr24feed.ini
systemctl restart fr24feed &>/dev/null
fi

if (( $(cat /etc/lighttpd/conf-enabled/* | grep -c -E -e '^server.stat-cache-engine *\= *"disable"') > 1 )); then
rm -f /etc/lighttpd/conf-enabled/88-readsb-statcache.conf
fi

systemctl enable readsb
systemctl restart readsb

+ 22
- 0
stage4/32-pisdr-dump1090/targets/configure_rbfeeder.sh View File

@@ -0,0 +1,22 @@
#!/bin/bash

# configure rbfeeder to use readsb

systemctl stop rb-feeder &>/dev/null

rm -f /etc/lighttpd/conf-enabled/89-dump1090.conf

apt-get remove -y dump1090-mutability &>/dev/null
apt-get remove -y dump1090 &>/dev/null
apt-get remove -y dump1090-fa &>/dev/null

if [[ -f /etc/rbfeeder.ini ]]; then
if grep -qs -e 'network_mode=false' /etc/rbfeeder.ini &>/dev/null &&
grep -qs -e 'mode=beast' /etc/rbfeeder.ini &&
grep -qs -e 'external_port=30005' /etc/rbfeeder.ini &&
grep -qs -e 'external_host=127.0.0.1' /etc/rbfeeder.ini
then
sed -i -e 's/network_mode=false/network_mode=true/' /etc/rbfeeder.ini
fi
systemctl restart rbfeeder &>/dev/null
fi

+ 5
- 0
stage4/32-pisdr-dump1090/targets/disable.sh View File

@@ -0,0 +1,5 @@
#!/bin/bash

systemctl disable --now readsb
systemctl disable --now tar1090
systemctl disable --now lighttpd

+ 5
- 0
stage4/32-pisdr-dump1090/targets/enable.sh View File

@@ -0,0 +1,5 @@
#!/bin/bash

systemctl enable --now readsb
systemctl enable --now tar1090
systemctl enable --now lighttpd

Loading…
Cancel
Save