Instalare Svxlink: Diferență între versiuni
Fără descriere a modificării |
|||
| Linia 106: | Linia 106: | ||
Atenție ! Unele fișiere audio nu se găsesc în arhiva de mai sus. Verifică <code>https://github.com/sm0svx/svxlink-sounds-en_US-heather</code> ! | Atenție ! Unele fișiere audio nu se găsesc în arhiva de mai sus. Verifică <code>https://github.com/sm0svx/svxlink-sounds-en_US-heather</code> ! | ||
===Configurare serviciu=== | |||
<syntaxhighlight lang="zsh"> | |||
cd /lib/systemd/system | |||
sudo nano svxlink.service | |||
</syntaxhighlight> | |||
Mare atenție la parametrii de pornire: | |||
<syntaxhighlight lang="zsh" highlight="2,6"> | |||
[Service] | |||
EnvironmentFile=/opt/rolink/default/svxlink | |||
PIDFile=${PIDFILE} | |||
ExecStartPre=-/bin/touch ${LOGFILE} | |||
ExecStartPre=-/bin/chown ${RUNASUSER} ${LOGFILE} | |||
ExecStart=/opt/rolink/bin/svxlink --logfile=${LOGFILE} --config=${CFGFILE} --pidfile=${PIDFILE} --runasuser=${$ | |||
ExecReload=/bin/kill -s HUP $MAINPID | |||
Restart=on-failure | |||
TimeoutStartSec=60 | |||
TimeoutStopSec=10 | |||
#WatchdogSec= | |||
#NotifyAccess=main | |||
LimitCORE=infinity | |||
WorkingDirectory=/opt/rolink/svxlink | |||
</syntaxhighlight> | |||
Mare atenție la configurarea log-ului; serviciul nu poate porni fără o cale către un log valid: | |||
<syntaxhighlight lang="zsh" highlight="15"> | |||
sudo nano /opt/rolink/default/svxlink | |||
############################################################################# | |||
# | |||
# 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=/opt/rolink/svxlink/svxlink.conf | |||
# Where to place the log file | |||
LOGFILE=/opt/rolink/var/log/svxlink.log | |||
# Where to place the PID file | |||
PIDFILE=/run/svxlink.pid | |||
# Disable Alsa zerofill if set to 0 (see manual page) | |||
#ASYNC_AUDIO_ALSA_ZEROFILL=1 | |||
</syntaxhighlight> | |||
====Configurarea pentru pornirea automată==== | |||
După ce au fost parcurși cu success toți pașii de mai sus, se activează pornirea automată a serviciului odată cu pornirea sistemului: | |||
<syntaxhighlight lang="shell"> | |||
sudo systemctl enable application.service | |||
</syntaxhighlight> | |||
În cazul în care totul este ok, sistemul răspunde cu: | |||
<syntaxhighlight lang="shell"> | |||
Created symlink /etc/systemd/system/multi-user.target.wants/svxlink.service → /lib/systemd/system/svxlink.service. | |||
</syntaxhighlight> | |||
Verificarea cu <code>sudo systemctl status svxlink</code> generează următorul mesaj de succes: | |||
<syntaxhighlight lang="shell" highlight="6,7"> | |||
tom@raspberrypi:~ $ svxstatus | |||
● svxlink.service - SvxLink repeater control software | |||
Loaded: loaded (/lib/systemd/system/svxlink.service; enabled; vendor preset: enabled) | |||
Active: active (running) since Sun 2020-07-19 11:47:22 EEST; 1min 22s ago | |||
Docs: man:svxlink(1) | |||
Process: 471 ExecStartPre=/bin/touch ${LOGFILE} (code=exited, status=0/SUCCESS) | |||
Process: 484 ExecStartPre=/bin/chown ${RUNASUSER} ${LOGFILE} (code=exited, status=0/SUCCESS) | |||
Main PID: 488 (svxlink) | |||
Tasks: 1 (limit: 4915) | |||
Memory: 12.8M | |||
CGroup: /system.slice/svxlink.service | |||
└─488 /opt/rolink/bin/svxlink --logfile=/opt/rolink/var/log/svxlink.log --config=/opt/rolink/svxlink/svxlink.conf --pidfile=/ru | |||
Jul 19 11:47:22 raspberrypi systemd[1]: Starting SvxLink repeater control software... | |||
Jul 19 11:47:22 raspberrypi systemd[1]: Started SvxLink repeater control software. | |||
</syntaxhighlight> | |||
===Erori în log-uri=== | |||
<syntaxhighlight lang="zsh"> | |||
Apr 17 14:09:13 raspberrypi svxlink[970]: Libgcrypt warning: missing initialization - please fix the application | |||
</syntaxhighlight> | |||
==Link-uri externe== | |||
* [https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units How To Use Systemctl to Manage Systemd Services and Units] | |||
* [https://www.certdepot.net/systemd-service-debugging-tips/ Systemd service debugging tips] | |||
==Link-uri externe== | ==Link-uri externe== | ||
Versiunea de la data 24 octombrie 2022 21:46
Ghidul ăsta l-am făcut mai mult pentru mine, ca să nu uit. Dar poate fi util și altora.
Instalare din surse
Update și upgrade
sudo apt-get update
sudo apt-get upgrade
Descarcă și instalează pachetele
Dependențe:
- libsigc++ 2
- gsm
- popt
- libgcrypt
Pachete recomandate:
- libasound — Pentru suport ALSA
- speex — Îmbunătățirea calității audio pentru Echolink și transceivere remote
- opus — Îmbunătățirea calității audio pentru transceivere remote și SvxReflector
Pachete opționale:
- rtl-sdr — Suport nativ pentru dongle USB RTL2832U DVB-T
- Doxygen — Pentru generarea documentației dezvoltator
- Groff — Pentru generarea paginilor man
tom@raspberrypi:~ $ sudo apt install g++ cmake make libsigc++-2.0-dev libgsm1-dev libpopt-dev tcl8.5-dev libgcrypt20-dev libspeex-dev libasound2-dev libopus-dev librtlsdr-dev doxygen groff alsa-utils vorbis-tools curl libcurl4-openssl-dev git rtl-sdr libcurl4-openssl-dev cmake libjsoncpp-dev
Crează utilizator svxlink și adaugă la grupuri
sudo useradd -rG audio,plugdev,gpio,dialout svxlink
Descarcă soft-ul de pe Github
git clone http://github.com/sm0svx/svxlink.git
mkdir svxlink/src/build
cd svxlink/src/build
Compilează
Este foarte important ca instrucțiunile de mai jos să fie date sub sudo:
sudo cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/opt/rolink -DSYSCONF_INSTALL_DIR=/opt/rolink -DLOCAL_STATE_DIR=/opt/rolink/var -DWITH_SYSTEMD=ON ..
sudo make -j4
sudo make doc
sudo make install
Adaugă svxlink la PATH
Implicit, sistemul nu recunoaște comanda svxlink:
$ svxlink
-bash: svxlink: command not found
Comanda trebuia adăugată la variabila de mediu PATH:
Configurează calea către bibliotecile dinamice
Exemplul de instalare de mai sus arată instalarea adaptată (customized install). În acest caz apar erori la apelarea bibliotecilor dinamice:
tom@raspberrypi:/etc/ld.so.conf.d $ svxlink
svxlink: error while loading shared libraries: libasynccpp.so.1.6: cannot open shared object file: No such file or directory
Pentru a rula aplicația trebuie adăugată calea către bibliotecile dinamice specifice Svxlink la nivel de sistem, în /etc/ld.so.conf.d. Procedură:
- Se crează un fișier care conține calea către bibliotecile dinamice specifice;
- Se adaugă acest fișier în
/etc/ld.so.conf.d - Se dă comanda
sudo ldconfig -v
Exemplu:
cd /etc/ld.so.conf.d
sudo nano svxlink.libs.conf
sudo ldconfig -v
Se adaugă calea către directorul care conține bibliotecile specifice Svxlink, în acest caz:/opt/rolink/lib
Se rulează comanda de actualizare a bibliotecilor de sistem:sudo ldconfig -v
Adăugarea căii către executabil
Pentru asta trebuie editat /etc/profile:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/rolink/bin"
else
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/opt/rolink/bin"
fi
export PATH
Adăugare fișiere audio
cd /opt/rolink/share/svxlink/sounds
sudo wget https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/download/14.08/svxlink-sounds-en_US-heather-16k-13.12.tar.bz2
sudo tar xvjf svxlink-sounds-en_US-heather-16k-13.12.tar.bz2
sudo ln -s en_US-heather-16k en_US
Atenție ! Unele fișiere audio nu se găsesc în arhiva de mai sus. Verifică https://github.com/sm0svx/svxlink-sounds-en_US-heather !
Configurare serviciu
cd /lib/systemd/system
sudo nano svxlink.service
Mare atenție la parametrii de pornire:
[Service]
EnvironmentFile=/opt/rolink/default/svxlink
PIDFile=${PIDFILE}
ExecStartPre=-/bin/touch ${LOGFILE}
ExecStartPre=-/bin/chown ${RUNASUSER} ${LOGFILE}
ExecStart=/opt/rolink/bin/svxlink --logfile=${LOGFILE} --config=${CFGFILE} --pidfile=${PIDFILE} --runasuser=${$
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure
TimeoutStartSec=60
TimeoutStopSec=10
#WatchdogSec=
#NotifyAccess=main
LimitCORE=infinity
WorkingDirectory=/opt/rolink/svxlink
Mare atenție la configurarea log-ului; serviciul nu poate porni fără o cale către un log valid:
sudo nano /opt/rolink/default/svxlink
#############################################################################
#
# 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=/opt/rolink/svxlink/svxlink.conf
# Where to place the log file
LOGFILE=/opt/rolink/var/log/svxlink.log
# Where to place the PID file
PIDFILE=/run/svxlink.pid
# Disable Alsa zerofill if set to 0 (see manual page)
#ASYNC_AUDIO_ALSA_ZEROFILL=1
Configurarea pentru pornirea automată
După ce au fost parcurși cu success toți pașii de mai sus, se activează pornirea automată a serviciului odată cu pornirea sistemului:
sudo systemctl enable application.service
În cazul în care totul este ok, sistemul răspunde cu:
Created symlink /etc/systemd/system/multi-user.target.wants/svxlink.service → /lib/systemd/system/svxlink.service.
Verificarea cu sudo systemctl status svxlink generează următorul mesaj de succes:
tom@raspberrypi:~ $ svxstatus
● svxlink.service - SvxLink repeater control software
Loaded: loaded (/lib/systemd/system/svxlink.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-07-19 11:47:22 EEST; 1min 22s ago
Docs: man:svxlink(1)
Process: 471 ExecStartPre=/bin/touch ${LOGFILE} (code=exited, status=0/SUCCESS)
Process: 484 ExecStartPre=/bin/chown ${RUNASUSER} ${LOGFILE} (code=exited, status=0/SUCCESS)
Main PID: 488 (svxlink)
Tasks: 1 (limit: 4915)
Memory: 12.8M
CGroup: /system.slice/svxlink.service
└─488 /opt/rolink/bin/svxlink --logfile=/opt/rolink/var/log/svxlink.log --config=/opt/rolink/svxlink/svxlink.conf --pidfile=/ru
Jul 19 11:47:22 raspberrypi systemd[1]: Starting SvxLink repeater control software...
Jul 19 11:47:22 raspberrypi systemd[1]: Started SvxLink repeater control software.
Erori în log-uri
Apr 17 14:09:13 raspberrypi svxlink[970]: Libgcrypt warning: missing initialization - please fix the application
Link-uri externe