How to Install dump1090-fa on openSUSE x86_64
This method has been tested on openSUSE 15.1 - Leap
(1) Install build tools
sudo zypper install git-core gcc-c++ make cmake
(2) Build & Install rtl-sdr from source code.
NOTE: The rtl-sdr
package is available in openSUSE repository, but has something missing. As a result dump1090-fa fails to build. We will therefore build & install rtl-sdr
package from source-code.
## Install dependency
sudo zypper install libusb-devel
## Clone source code, build & install rtl-sdr
cd ~/
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
sudo mkdir build && cd build
sudo cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
sudo make
sudo make install
sudo ldconfig
(3) Build dump1090-fa linux binary from source code.
## Install dependency
sudo zypper install ncurses-devel
## Clone source code, and build dump1090-fa's Linux Binary
cd ~/
sudo git clone https://github.com/flightaware/dump1090.git dump1090-fa
cd dump1090-fa
sudo make BLADERF=no
(4) Test the binary (dongle must be plugged into the computer)
NOTE: Press Ctrl and c keys together to break the continous flow of output.
abcd@linux-zi0u:~> cd dump1090-fa
abcd@linux-zi0u:~/dump1090-fa> sudo ./dump1090
Sun Mar 8 20:19:27 2020 EDT dump1090-fa starting up.
rtlsdr: using device #0: Generic RTL2832U (Realtek, RTL2832U, SN 00000101)
Detached kernel driver
Found Rafael Micro R820T tuner
rtlsdr: tuner gain set to 49.6 dB
*8dc05218e112a300000000c0efeb;
CRC: 000000
RSSI: -2.5 dBFS
Score: 1400
Time: 15314.75us
DF:17 AA:C05218 CA:5 ME:E112A300000000
Extended Squitter Emergency/priority status (28/1) (reliable)
ICAO Address: C05218 (Mode S / ADS-B)
Air/Ground: airborne
Squawk: 6514
Emergency/priority: no emergency
^C
(5) Configure & enable systemd for dump1090-fa by copying necessary files from cloned source code.
sudo cp ~/dump1090-fa/dump1090 /usr/bin/dump1090-fa
sudo cp ~/dump1090-fa/debian/dump1090-fa.default /etc/default/dump1090-fa
sudo cp ~/dump1090-fa/debian/dump1090-fa.service /usr/lib/systemd/system/dump1090-fa.service
sudo mkdir -p /usr/share/dump1090-fa/
sudo cp ~/dump1090-fa/debian/start-dump1090-fa /usr/share/dump1090-fa/start-dump1090-fa
sudo cp -r ~/dump1090-fa/public_html /usr/share/dump1090-fa/html
## Create user "dump1090" to run systemd service
## Create group "plugdev" and add usder "dump1090" to this group
sudo useradd --system dump1090
sudo groupadd plugdev
sudo usermod -a -G plugdev dump1090
sudo systemctl enable dump1090-fa
sudo reboot
sudo systemctl status dump1090-fa
(6) Install & Configure lighttpd web server
sudo zypper install lighttpd
sudo systemctl enable lighttpd
sudo systemctl start lighttpd
sudo systemctl status lighttpd
sudo chmod 777 /etc/lighttpd
sudo cp ~/dump1090-fa/debian/lighttpd/89-dump1090-fa.conf /etc/lighttpd/conf.d/89-dump1090-fa.conf
echo "server.modules += ( \"mod_alias\" )" >> /etc/lighttpd/lighttpd.conf
echo "include \"/etc/lighttpd/conf.d/89-dump1090-fa.conf\"" >> /etc/lighttpd/lighttpd.conf
sudo sed -i 's/server.use-ipv6 = "enable"/server.use-ipv6 = "disable"/' /etc/lighttpd/lighttpd.conf
sudo chmod 755 /etc/lighttpd
sudo systemctl restart lighttpd
(7) Configure Firewall to permit display of SkyView from LAN/internet
sudo firewall-cmd --add-service=http
sudo firewall-cmd --runtime-to-permanent
sudo firewall-cmd --reload
Map dispaly in browser of openSUSE at “localhost/dump1090-fa/”
Map display in browser of another computer on same LAN at “IP-of-openSUSE/dump1090-fa/”
UPDATE: Current version openSUSE Tumbleweed :2022 08 28
(1) INSTALL, ENABLE, AND START SSH
sudo zypper install openssh
sudo systemctl enable sshd
sudo systemctl start sshd
(2) OPEN PORT 22 (FOR SSH) IN FIREWALL
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
sudo firewall-cmd --reload
(3) ADD FIREWALL RULE (HTTPS/443 and HTTP/80):
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
## Verify it:
sudo firewall-cmd --list-services
sudo firewall-cmd --list-services --permanent
(4) INSTALL BUILD TOOLS & DEPENDENCIES
sudo zypper refresh
sudo zypper install -y git make gcc binutils glibc
sudo zypper install -y fakeroot pkgconf ncurses-devel ncurses
sudo zypper install -y rtl-sdr libusb-1_0-0 libusb-compat-devel
sudo zypper addrepo https://download.opensuse.org/repositories/home:virtuallyNick:piaware/openSUSE_Tumbleweed/home:virtuallyNick:piaware.repo
sudo zypper refresh
sudo zypper install librtlsdr-devel
## After installing librtlsdr-devel package, remove above repository
## as it has dump1090-mutability ver 1.15, dump1090-fa ver 3.8.1, and
## piaware ver 3.8.1, and you may by mistake install these old packages.
sudo zypper removerepo home_virtuallyNick_piaware
sudo zypper refresh
sudo zypper install lighttpd
sudo systemctl enable lighttpd
sudo systemctl start lighttpd
(5) BUILD DUMP1090
#Go to home directory
cd
#Clone source code
git clone https://github.com/flightaware/dump1090
cd dump1090
git fetch --all
git reset --hard origin/master
## Make dump1090
make RTLSDR=yes DUMP1090_VERSION=$(git describe --tags | sed 's/-.*//')
(6) INSTALL DUMP1090-FA
cd dump1090
sudo useradd --system dump1090
sudo usermod -a -G rtlsdr dump1090
sudo cp dump1090 /usr/bin/dump1090-fa
sudo cp view1090 /usr/bin/view1090
sudo mkdir -p /usr/share/skyaware/html
sudo cp -r public_html/* /usr/share/skyaware/html
sudo mkdir -p /usr/share/dump1090-fa
sudo cp -r debian/start-dump1090-fa /usr/share/dump1090-fa/
sudo cp -r debian/generate-wisdom /usr/share/dump1090-fa/
sudo mkdir -p /etc/default
sudo cp debian/dump1090-fa.default /etc/default/dump1090-fa
sudo mkdir -p /usr/lib/dump1090-fa
sudo cp -r starch-benchmark /usr/lib/dump1090-fa/
sudo cp -r debian/lighttpd/* /etc/lighttpd/conf.d
sudo mkdir -p /usr/lib/systemd/system
sudo cp debian/dump1090-fa.service /usr/lib/systemd/system/dump1090-fa.service
(7) CONFIGURE WEB-SERVER LIGHTTPD
## Switch to root
sudo -i
## As root issue following commands
echo "server.modules += ( \"mod_alias\" )" >> /etc/lighttpd/lighttpd.conf
echo "include \"/etc/lighttpd/conf.d/89-skyaware.conf\"" >> /etc/lighttpd/lighttpd.conf
sed -i 's/server.use-ipv6 = "enable"/server.use-ipv6 = "disable"/' /etc/lighttpd/lighttpd.conf
systemctl restart lighttpd
## Switch back to normal user
(8) ENABLE dump1090-FA & REBOOT
sudo systemctl enable dump1090-fa
sudo reboot
abcd@opensuse-tumbleweeed:~> sudo systemctl status dump1090-fa
● dump1090-fa.service - dump1090 ADS-B receiver (FlightAware customization)
Loaded: loaded (/usr/lib/systemd/system/dump1090-fa.service; enabled; preset: disabled)
Active: active (running) since Tue 2022-08-30 05:59:49 EDT; 20min ago
Docs: https://flightaware.com/adsb/piaware/
Main PID: 801 (dump1090-fa)
Tasks: 3 (limit: 4669)
CPU: 1min 5.375s
CGroup: /system.slice/dump1090-fa.service
└─801 /usr/bin/dump1090-fa --quiet --device-type rtlsdr --gain 60 --adaptive-range --fix --max-range 360 --net-ro-port 30002 --net-sbs-port>
Aug 30 06:01:20 opensuse-tumbleweeed dump1090-fa[801]: rtlsdr: failed to disable tuner AGC
Aug 30 06:01:21 opensuse-tumbleweeed dump1090-fa[801]: adaptive: available dynamic range (26.3dB) < required dynamic range (30.0dB), continuing downward>
Aug 30 06:01:21 opensuse-tumbleweeed dump1090-fa[801]: adaptive: changing gain from 58.6dB (step 29) to 49.6dB (step 28) because: probing dynamic range >
Aug 30 06:01:21 opensuse-tumbleweeed dump1090-fa[801]: rtlsdr_demod_write_reg failed with -9
Aug 30 06:01:21 opensuse-tumbleweeed dump1090-fa[801]: r82xx_write: i2c wr failed=-9 reg=05 len=1
Aug 30 06:01:21 opensuse-tumbleweeed dump1090-fa[801]: rtlsdr: failed to disable tuner AGC
Aug 30 06:01:22 opensuse-tumbleweeed dump1090-fa[801]: adaptive: available dynamic range (26.4dB) < required dynamic range (30.0dB), continuing downward>
Aug 30 06:01:22 opensuse-tumbleweeed dump1090-fa[801]: adaptive: changing gain from 58.6dB (step 29) to 49.6dB (step 28) because: probing dynamic range >
Aug 30 06:01:22 opensuse-tumbleweeed dump1090-fa[801]: rtlsdr: tuner gain set to 49.6 dB (gain step 28)
Aug 30 06:01:33 opensuse-tumbleweeed dump1090-fa[801]: adaptive: available dynamic range (37.1dB) >= required dynamic range (30.0dB), stopping downwards>