==== APRS iGate ====
* Raspberry Pi Zero
* NooElec NESDR Nano 2+ Tiny RTL-SDR
----
==== Setup ====
* Burn the latest Raspbian Lite image to an SD card & boot up the Pi
* Login using "pi" with password "raspberry"
> sudo raspi-config
Expand filesystem
Set locale "en_US,UTF-8 UTF-8"
Set timezone "US, Central"
Set keyboard layout "Generic 101-key PC, English (US)"
Set Wi-Fi country "US United States"
Enable SSH
==== Patches ====
> sudo apt-get update
> sudo apt-get upgrade
==== Change default pi password ("raspberry") & set the root password ====
> passwd
> sudo passwd root
> sudo nano /etc/ssh/sshd_config
change "PermitRootLogin without-password" to "PermitRootLogin yes"
==== firewalld ====
> sudo apt-get install firewalld
==== gpsd ====
> sudo apt-get install gpsd gpsd-clients python-gps libgps-dev
> sudo nano /lib/systemd/system/gpsd.socket
change "ListenStream=127.0.0.1:2947" to "ListenStream=0.0.0.0:2947"
> sudo nano /etc/default/gpsd
START_DAEMON="true"
USBAUTO="false"
DEVICES="/dev/ttyUSB0"
GPSD_OPTIONS="-n"
GPSD_SOCET="/var/run/gpsd.sock"
> sudo /etc/init.d/gpsd restart
> cgps -s
=== Create firewall service for gpsd ===
> sudo nano /etc/firewalld/services/gpsd.xml
gpds
gpsd
> sudo chmod 640 /etc/firewalld/services/gpsd.xml
> sudo firewall-cmd --permanent --add-service=gpsd
==== rtl-sdr ====
> sudo apt-get install -y cmake pkg-config libusb-1.0
> sudo apt-get install git
> git clone git://git.osmocom.org/rtl-sdr.git
> cd rtl-sdr/
> mkdir build
> cd build
> cmake ../ -DINSTALL_UDEV_RULES=ON
> make
> sudo make install
> sudo ldconfig
=== Edit /etc/modprobe.d/raspi-blacklist.conf ===
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830
=== Create firewall service for rtl_tcp ===
> sudo nano /etc/firewalld/services/rtl_tcp.xml
rtl_tcp
rtl_tcp
> sudo chmod 640 /etc/firewalld/services/rtl_tcp.xml
> sudo firewall-cmd --permanent --add-service=rtl_tcp
==== Direwolf ====
> sudo apt install git gcc g++ make cmake libasound2-dev libudev-dev gpsd libgps-dev
> cd ~
> git clone https://www.github.com/wb2osz/direwolf
> cd direwolf
> git checkout dev
> mkdir build && cd build
> cmake ..
> make -j4
> sudo make install
> make install-conf
> cd ~
> sudo nano direwolf.conf (Place your settings here)
> sudo rtl_fm -f 144.39M - | direwolf -c direwolf.conf -r 24000 -D 1 -
=== Create firewall service for Direwolf ===
> sudo nano /etc/firewalld/services/direwolf.xml
Direwolf
Direwolf
> sudo chmod 640 /etc/firewalld/services/direwolf.xml
> sudo firewall-cmd --permanent --add-service=direwolf
=== Make it a service ===
[[https://www.f4fxl.org/start-direwolf-at-boot-the-systemd-way/|Source: F4FXL]]
> sudo apt install netcat
> sudo apt install tmux
> sudo nano /etc/systemd/system/direwolf.service
[Unit]
Description=Direwolf
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -d -s direwolf '/usr/local/bin/rtl_fm -f 144.39M - |
/usr/local/bin/direwolf -c /home/w5ged/direwolf.conf -t 0 -r 24000 -D 1 -'
Restart=always
[Install]
WantedBy=default.target
> sudo systemctl enable direwolf.service
> sudo systemctl start direwolf.service
> sudo tmux attach -t direwolf (To view the output from Direwolf)