Instalacja SVXlink
Zanim przechodzimy do samej instalacji, to pierwszą aplikacją jaką instaluje jest Midnight Commander , pokolenie pamietające Norton Commander poczuje delikatną nostalgię :)
sudo apt install mc
Sam proces instalacji svxlink można przejść na dwa sposoby, i dlaczego zawsze wybiera się ten trudniejszy ?
Otóz można zainstalować svxlink z repozytoriu komenda :
sudo apt install svxlink-server

W dalszej czesci widzimy jakie pliki zalezności będą się instalować

Pomijając fakt że w repozytorium jest starsza wersja SvxLink ( co może być plusem ) to brakuje w niej ważnego elementu w postaci wsparcia dla biblioteki GPIOD, a to zmuszać nas będzie to starszej i moim zdaniem mniej elastycznej metody zarządzania GPIO. To jest chyba główny powód dlaczego przechodzimy proces instalacji SvxLink instalując go ze źródła co jest bardziej czasochłonne.
UWAGA !!! - opis nie jest optymalny i zautomatyzowany i jest to celowy zabieg aby wykazać jakie sa pliki współpracujące z samym svxlink, mam nadzieję że pozwoli to zrozumieć pewne zależności i kierunek gdzie można coś zmodyfikować lub zrozumieć co gdzie trzeba zmienić jeśli coś nie działa.
W terminalu najpierw wydajemy komendy aktualizacji systemu
sudo apt update
sudo apt upgrade -y
Następnie instalujemy niezbędne "zależności" programy niezbędne do prawidłowej kompilacji svxlink.
sudo apt install -y build-essential git alsa-utils mc
sudo apt install -y libasound2-dev g++ gcc make cmake groff gzip doxygen tar tcl
sudo apt install -y libspeex-dev libspeexdsp-dev libopus-dev libvorbis-dev
sudo apt install -y libpopt-dev libsigc++-2.0-dev python3-dev python3-pip
sudo apt install -y libgcrypt20-dev libgsm1-dev swh-plugins tap-plugins ladspa-sdk
sudo apt install -y librtlsdr-dev libjsoncpp-dev nodejs node-ws dos2unix
sudo apt install -y bc tcl-dev libgpiod2 libgpiod-dev gpiod gawk lynx curl rtl-sdr
sudo apt install -y libcurl4-openssl-dev curl libjson-perl libwww-perl net-tools sqlite3
sudo apt install -y sox libsox-dev curl python3 python3-dev python3-numpy python3-pip python3-suds
sudo apt install -y libssl-dev
Jeśli chcemy na tym urządzeniu zainstalować także dashboard to musimy przygotować dla niego środowisko pracy
sudo apt install -y apache2 php libapache2-mod-php php-mbstring php-cgi php-common php-curl php-sqlite3 apache2-utils
Kolejnym krokiem jest utworzenie użytkownika svxlink ponieważ jest on wymagany do instalacji. W późniejszym etapie możecie sobie sami zmienić ustawienia, lecz na etapie instalacji taki użytkownik powinien być istniejący.
W przypadku RaspberryPi komenda jest taka:
sudo /usr/sbin/useradd -c "svxlink user" -G audio,dialout,daemon,plugdev,gpio -d /home/svxlink -m -s /sbin/nologin svxlink
Można powiedzieć że jeśli wszystkie wymienione kroki zakończyły się sukcesem i nie wystąpiły jakieś problemy z ich instalacją to możemy przejść do instalacji samego svxlink.
Oto spis komend prowadzących nas przez proces pobrania, kompilacji i instalacji svxlink / svxreflector
sudo -s
cd /opt
mkdir src
cd src
git clone http://github.com/sm0svx/svxlink.git
mkdir svxlink/src/build
cd svxlink/src/build
cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var -DCMAKE_BUILD_TYPE=Release ..

Ważne aby na tym etapie obserwować czy przypadkiem nie mamy komunkatu o błedzie lub że brakuje jakiegoś elementu
make
make install
/usr/sbin/ldconfig
Musimy jeszcze utworzyć dwa pliki :
1. plik autostartu
sudo nano /lib/systemd/system/svxlink.service
i wklejamy :
[Unit]
Description=SvxLink repeater control software
Documentation=man:svxlink(1)
After=network.target remote-fs.target syslog.target time.target
After=rc-local.service sound.target
[Service]
EnvironmentFile=/etc/default/svxlink
PIDFile=${PIDFILE}
ExecStartPre=/bin/mkdir -p /var/run/svxlink
ExecStartPre=/bin/chown ${RUNASUSER}:${RUNASUSER} /var/run/svxlink
ExecStartPre=/bin/chmod 775 /var/run/svxlink
ExecStartPre=-/bin/touch ${LOGFILE}
ExecStartPre=-/bin/chown ${RUNASUSER} ${LOGFILE}
ExecStart=/usr/bin/svxlink --logfile=${LOGFILE} --config=${CFGFILE} --pidfile=${PIDFILE} --runasuser=${RUNASUSER}
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
TimeoutStartSec=60
TimeoutStopSec=10
#WatchdogSec=@SVX_WatchdogSec@
#NotifyAccess=main
LimitCORE=infinity
WorkingDirectory=/etc/svxlink
[Install]
WantedBy=multi-user.target
następnie sudo nano /etc/default/svxlink
i wklejamy
# This file copy to /etc/defualt/
#
# Enable Alsa zerofill if set to 1 (see manual page)
#ASYNC_AUDIO_ALSA_ZEROFILL=0
############################################################################
#
# Configuration file for the SvxLink Systemd unit file
#
#############################################################################
# The user to run the SvxLink server as
RUNASUSER=svxlink
# Specify which configuration file to use
CFGFILE=/etc/svxlink/svxlink.conf
# Where to place the log file
LOGFILE=/var/log/svxlink.log
# Where to place the PID file
PIDFILE=/run/svxlink.pid
# Enable Alsa zerofill if set to 1 (see manual page)
#ASYNC_AUDIO_ALSA_ZEROFILL=0
Teraz możemy wydawać komendy :
sudo systemctl status svxlink
sudo systemctl stop svxlink
sudo systemctl start svxlink
sudo systemctl restart svxlink
Zanim zakończymy warto dla ułatwienia sobie życia pobrać prawie gotowy plik konfiguracyjny przygotowany pod RaspberryPi i sterowanie za pomoca GPIO - pozwoli mieć to punkt wyjściowy na start i do porównania z oryginałem na przyszłość.
Najpierw wykonajmy kopię zapasowa oryginalnego pliku konfiguracyjnego komendą :
sudo cp /etc/svxlink/svxlink.conf /etc/svxlink/svxlink.conf.bak
a następnie moge zasugerowac pobranie prostego pliku konfiguracyjnego pod simplex hotspot
sudo wget -O /etc/svxlink/svxlink.conf https://d4a.uk/git/svx/svxlink.conf
Edycję i konfigurację opisze w dalszej cześci.
Dlatego już w tym momencie polecam każdemu po przejściu procesu kompilacji zrobić sobie kopie karty SD - aby kolejny raz już tego nie robić i nie tracić kolejnych godzin.

