Svxlink-ohjelmiston asentaminen Raspberry Pi -tietokoneeseen
Tämän asennusohjeen avulla on tavoite saada rakennettua radioverkkoon kytketty simplex-taajuudella toimiva SvxLink-asema. Ohjelmiston asentajalta edellytetään Linux-osaamista.
VAROITUS! Ennen aloitusta huomio, että tämän ohjeen esimerkikomennoissa esiintyvät laitetiedostojen polut voivat vaihdella omaan laitteistoosi verrattuna. Selvitä laitetiedoston polku ennen komennon antamista, muuten saatat saada tuhoa aikaiseksi.
Tämä ohje on kirjoitettu seuraaville laitteille, mutta on sovellettavissa myös muiden kokoonpanojen yhteydessä.
- Motorola GM340 UHF-radio
- RIM-Maxtrac USB-liityntäkortti
- Raspberry Pi 3 Model B v1.2
Radion ohjelmointia varten tarvitset CPS-ohjelman ja kaapelin.
Käyttöjärjestelmän kirjoittaminen mikro-SD-kortille
Käytämme vanhempaa Raspberryn käyttöjärjestelmää, koska read-only-tiedostojärjestelmän luominen ei toiminut uudemmassa versiossa. Kirjoita Raspberry Pi OS Lite (Legacy) -käyttöjärjestelmä muistikortille toisella Linux-tietokoneella.
wget https://downloads.raspberrypi.org/raspios_oldstable_lite_armhf/images/raspios_oldstable_lite_armhf-2021-12-02/2021-12-02-raspios-buster-armhf-lite.zip
unzip 2021-12-02-raspios-buster-armhf-lite.zip
sudo dd if=2021-12-02-raspios-buster-armhf-lite.img of=/dev/sdf conv=fsync bs=64k
Salli SSH-yhteyden muodostaminen Raspberry Pi -tietokoneeseen kirjoittamalla muistikortille /boot-hakemistoon tiedosto ssh
sudo mount /dev/sdf1 /mnt
sudo touch /mnt/ssh
sudo umount /mnt
Tässä vaiheessa voit sujauttaa muistikortin Raspberry Pi -tietokoneeseen ja käynnistää sen.
Ota SSH-pääteyhteys Raspberry Pi -tietokoneeseen ja päivitä sen käyttöjärjestelmä
sudo apt update && sudo apt -y upgrade
Tee tarvittavat asetukset (hostname, locale, timezone, jne.)
sudo raspi-config
Asenna seuraavat ohjelmat ja kirjastot
sudo apt -y install git g++ cmake make libsigc++-2.0-dev libgsm1-dev
sudo apt -y install libpopt-dev tcl-dev libgcrypt20-dev libspeex-dev
sudo apt -y install libasound2-dev libopus-dev libcurl4-openssl-dev groff libgpiod-dev
sudo apt -y install libjsoncpp-dev librtlsdr-dev libogg-dev vorbis-tools
sudo apt -y install ladspa-sdk libssl-dev
Lataa SvxLink-lähdekoodi
cd ~
git clone https://ssverkko@bitbucket.org/ssverkko/svxlink.git
Lataa päivitykset SvxLinkin päärepositorista
cd ~/svxlink
git remote add upstream https://github.com/sm0svx/svxlink.git
git pull upstream master
Käännä ja asenna
cd ~/svxlink/src
mkdir build && cd build
cmake -DWITH_SYSTEMD=ON -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
sudo adduser --system --shell /bin/bash --gecos 'SvxLink Radio System' --group --disabled-password --home /home/svxlink svxlink
sudo adduser svxlink audio
sudo adduser svxlink plugdev
sudo adduser svxlink input
sudo adduser svxlink gpio
make doc
sudo make install
sudo ldconfig
Lataa ja asenna SvxLinkin englanninkieliset äänet
cd /tmp
wget -N https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/download/19.09/svxlink-sounds-en_US-heather-16k-19.09.tar.bz2
sudo -i
cd /usr/share/svxlink/sounds/
tar xvjf /tmp/svxlink-sounds-en_US-heather-16k-19.09.tar.bz2
ln -s en_US-heather-16k en_US
exit
Luo tiedosto /etc/udev/rules.d/50-svxlink-cmedia.rules ja kirjoita sen sisällöksi
# USB Radio Interface (C-Media Electronics, Inc.)
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0d8c", GROUP="audio", MODE="0660"
Muokkaa SvxLinkin konfigurointitiedostoa
sudo nano /etc/svxlink/svxlink.conf
Simplex-aseman konfiguraatio, jossa aliäänen tunnistus ja lähetys tehdään radiossa.
Radion käyttöasetukset (code plug) ovat tiedostossa GM340_V7.0_emp_sq_433950.cpg.
###############################################################################
# #
# Configuration file for the SvxLink server #
# #
###############################################################################
[GLOBAL]
LOGICS=SimplexLogic,ReflectorLogic
CFG_DIR=svxlink.d
TIMESTAMP_FORMAT="%c"
CARD_SAMPLE_RATE=16000
CARD_CHANNELS=1
LINKS=ReflectorLink
[SimplexLogic]
TYPE=Simplex
RX=Rx1
TX=Tx1
MODULES=ModuleHelp,ModuleParrot
CALLSIGN=NOCALL
SHORT_IDENT_INTERVAL=10
LONG_IDENT_INTERVAL=60
IDENT_ONLY_AFTER_TX=4
EVENT_HANDLER=/usr/share/svxlink/events.tcl
DEFAULT_LANG=en_US
RGR_SOUND_DELAY=-1
RGR_SOUND_ALWAYS=0
MACROS=Macros
FX_GAIN_NORMAL=0
FX_GAIN_LOW=-12
ONLINE_CMD=998877
ONLINE=1
[ReflectorLogic]
TYPE=Reflector
HOST=ss-verkko.net
PORT=5373
CALLSIGN="NOCALL"
AUTH_KEY="abcd1234"
JITTER_BUFFER_DELAY=300
DEFAULT_TG=0
MONITOR_TGS=8
TG_SELECT_TIMEOUT=30
ANNOUNCE_REMOTE_MIN_INTERVAL=300
EVENT_HANDLER=/usr/share/svxlink/events.tcl
MUTE_FIRST_TX_LOC=1
MUTE_FIRST_TX_REM=0
TMP_MONITOR_TIMEOUT=3600
UDP_HEARTBEAT_INTERVAL=15
QSY_PENDING_TIMEOUT=15
VERBOSE=1
[ReflectorLink]
CONNECT_LOGICS=SimplexLogic:9:SSV,ReflectorLogic
DEFAULT_ACTIVE=1
TIMEOUT=300
[Macros]
9=Parrot:0123456789#
[Rx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:1
AUDIO_CHANNEL=0
LIMITER_THRESH=-6
SQL_DET=HIDRAW
SQL_START_DELAY=0
SQL_DELAY=0
SQL_HANGTIME=100
SQL_TIMEOUT=600
HID_DEVICE=/dev/hidraw0
HID_SQL_PIN=!VOL_UP
SIGLEV_DET=NONE
PREAMP=5.20
PEAK_METER=0
DTMF_DEC_TYPE=INTERNAL
DTMF_MUTING=1
DTMF_HANGTIME=40
[Tx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:1
AUDIO_CHANNEL=0
LIMITER_THRESH=-6
PTT_TYPE=Hidraw
HID_DEVICE=/dev/hidraw0
HID_PTT_PIN=GPIO3
PTT_HANGTIME=1000
TIMEOUT=300
TX_DELAY=500
DTMF_TONE_LENGTH=100
DTMF_TONE_SPACING=50
DTMF_DIGIT_PWR=-15
MASTER_GAIN=-0.46
Sopivat alsamixerin asetukset ovat:
- Speaker: 60
- Mic: 0
- Capture: 100
- Auto Gain Control: Off
Simplex-aseman konfiguraatio, jossa aliäänen tunnistuksen ja lähetyksen hoitaa SvxLink-ohjelma.
Radion käyttöasetukset (code plug) ovat tiedostossa GM340_V7.0_flat_unsq_433950.cpg.
###############################################################################
# #
# Configuration file for the SvxLink server #
# #
###############################################################################
[GLOBAL]
LOGICS=SimplexLogic,ReflectorLogic
CFG_DIR=svxlink.d
TIMESTAMP_FORMAT="%c"
CARD_SAMPLE_RATE=48000
CARD_CHANNELS=2
LINKS=ReflectorLink
[SimplexLogic]
TYPE=Simplex
RX=Rx1
TX=Tx1
MODULES=ModuleHelp,ModuleParrot
CALLSIGN=NOCALL
SHORT_IDENT_INTERVAL=10
LONG_IDENT_INTERVAL=60
IDENT_ONLY_AFTER_TX=4
EVENT_HANDLER=/usr/share/svxlink/events.tcl
DEFAULT_LANG=en_US
RGR_SOUND_DELAY=0
RGR_SOUND_ALWAYS=1
TX_CTCSS=ALWAYS
MACROS=Macros
FX_GAIN_NORMAL=0
FX_GAIN_LOW=-12
ONLINE_CMD=998877
ONLINE=1
CTCSS_TO_TG=103.5:8,127.3:699
[ReflectorLogic]
TYPE=Reflector
HOST=ss-verkko.net
PORT=5373
CALLSIGN="NOCALL"
AUTH_KEY="abcd1234"
JITTER_BUFFER_DELAY=300
DEFAULT_TG=0
MONITOR_TGS=8,699+
TG_SELECT_TIMEOUT=30
ANNOUNCE_REMOTE_MIN_INTERVAL=300
EVENT_HANDLER=/usr/share/svxlink/events.tcl
MUTE_FIRST_TX_LOC=1
MUTE_FIRST_TX_REM=0
TMP_MONITOR_TIMEOUT=3600
UDP_HEARTBEAT_INTERVAL=15
QSY_PENDING_TIMEOUT=15
VERBOSE=1
[ReflectorLink]
CONNECT_LOGICS=SimplexLogic:9:SSV,ReflectorLogic
DEFAULT_ACTIVE=1
TIMEOUT=300
[Macros]
9=Parrot:0123456789#
[Rx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:1
AUDIO_CHANNEL=0
LIMITER_THRESH=-6
SQL_DET=CTCSS
SQL_START_DELAY=0
SQL_DELAY=0
SQL_HANGTIME=100
SQL_EXTENDED_HANGTIME=1000
SQL_EXTENDED_HANGTIME_THRESH=15
SQL_TIMEOUT=600
CTCSS_MODE=2
CTCSS_FQ=103.5,127.3
CTCSS_SNR_OFFSETS=103.5:-2.04,127.3:-2.36
SIGLEV_DET=NOISE
SIGLEV_SLOPE=20.04
SIGLEV_OFFSET=8.54
SQL_SIGLEV_OPEN_THRESH=30
SQL_SIGLEV_CLOSE_THRESH=10
DEEMPHASIS=1
SQL_TAIL_ELIM=400
PREAMP=9.80
PEAK_METER=0
DTMF_DEC_TYPE=INTERNAL
DTMF_MUTING=1
DTMF_HANGTIME=40
DTMF_SERIAL=/dev/ttyS0
[Tx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:1
AUDIO_CHANNEL=1
LIMITER_THRESH=-6
PTT_TYPE=Hidraw
HID_DEVICE=/dev/hidraw0
HID_PTT_PIN=GPIO3
PTT_HANGTIME=1000
TIMEOUT=300
TX_DELAY=500
CTCSS_FQ=103.5
CTCSS_LEVEL=9
PREEMPHASIS=1
DTMF_TONE_LENGTH=100
DTMF_TONE_SPACING=50
DTMF_DIGIT_PWR=-15
MASTER_GAIN=0.07
Sopivat alsamixerin asetukset ovat:
- Speaker: 88
- Mic: 0
- Capture: 100
- Auto Gain Control: Off
Säädä lähetys- ja vastaanottoaudion tasot käyttämällä signaaligeneraattoria ja deviaatiomittaria, tai vaihtoehtoisesti spektrianalysaattoria ja erillistä lähetintä. Spektrianalysaattorilla haetaan Bessel-funktion nollakohta ja erillisen lähettimen avulla säädetään vastaanottotaso. Myös USB-RTL-tikulla voi mitata lähettimen deviaation.
Alsamixerin käynnistäminen ja asetusten tallennus
alsamixer -c 1 --view=all
sudo alsactl store
Lähettimen deviaation säätäminen
man devcal
devcal -t /etc/svxlink/svxlink.conf Tx1
Vastaanottimen tason säätäminen käsiradion 1750 Hz toistinpiipalla, kun piipan deviaatio on ennalta selvitetty
man devcal
devcal -r -f 1750 /etc/svxlink/svxlink.conf Rx1
Signaalidetektorin kalibrointi
man siglevdetcal
siglevdetcal /etc/svxlink/svxlink.conf Rx1
SvxLinkin koeajo terminaali-ikkunassa
sudo svxlink --runasuser=svxlink
SvxLinkin automaattinen käynnistäminen
sudo systemctl enable --now svxlink
SvxLinkin käynnistäminen uudelleen
sudo systemctl restart svxlink
SvxLinkin tila
sudo systemctl status svxlink
Automaattikäynnistys voidaan poistaa
sudo systemctl disable --now svxlink
Lokitiedoston seuraaminen
tail -f /var/log/svxlink
Lisää NTP-palvelimet tiedostoon /etc/ntp.conf ja poiskommentoi pool-alkuiset rivit. Tee tämä vaihe vasta seuraavan muistikortin suojauksen jälkeen.
...
# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
# Telia
server 193.210.18.10
server 192.89.123.70
server 192.89.123.74
# DNA
server 62.241.198.251
server 62.241.198.252
server 62.241.198.253
# Elisa ja Saunalahti
server ntp1.kolumbus.fi
server ntp2.kolumbus.fi
# Finland fi.pool.ntp.org
server 0.fi.pool.ntp.org
server 1.fi.pool.ntp.org
server 2.fi.pool.ntp.org
server 3.fi.pool.ntp.org
# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
# pick a different set every time it starts up. Please consider joining the
# pool: <http://www.pool.ntp.org/join.html>
#pool 0.debian.pool.ntp.org iburst
#pool 1.debian.pool.ntp.org iburst
#pool 2.debian.pool.ntp.org iburst
#pool 3.debian.pool.ntp.org iburst
...
Lopuksi Raspberry Pi:n muistikortti suojataan asettamalla sen tiedostojärjestelmä pelkkään lukutilaan. Kortille voi myöhemmin kirjoittaa antamalla ensin komento ‘rw’, takaisin lukutilaan siirrytään komennolla ‘ro’.
cd ~
git clone https://gitlab.com/larsfp/rpi-readonly
cd rpi-readonly
sudo ./setup.sh
73, Suur-Savon Verkko ry