Jump to content

Hamradio/svxlink node/sv

From MediaWiki For Hamradio Analog/Digital and Debian v13 software/Raspberry PI v3/4/5 howto
This page is a translated version of the page Hamradio/svxlink node and the translation is 79% complete.

En komplett, handfast genomgång: från ett tomt microSD-kort till en fungerande SvxLink-nod på en Raspberry Pi — ladda ner OS:et, flasha det med Wi-Fi och SSH förinställt, hitta Pi:n på ditt nätverk, logga in, bygg SvxLink, lägg in en config och lägg till en webb-dashboard. Ingen tidigare Linux-erfarenhet behövs. Klipp-och-klistra-vänlig.

💡 Vad du får i slutet: en Raspberry Pi som kör SvxLink, ansluten till en SVXReflector, med svenska och engelska röstmeddelanden, som du kan se och styra från en webbläsare. Räkna med ungefär en timme (mest är Pi:n som kompilerar själv).
Eight steps: download Raspberry Pi OS, flash with Pi Imager (hostname/SSH/Wi-Fi), boot, find IP, connect over SSH/PuTTY, install SvxLink, edit svxlink.conf, start it and add the dashboard.

Vad du behöver

  • En Raspberry Pi 3, 4 eller 5 (en Pi Zero 2 W fungerar men är långsam att kompilera på).
  • Ett microSD-kort, 16 GB eller större, och en kortläsare på din dator.
  • Ett ljudgränssnitt för radiosidan (USB-ljudkort, en hatt som WM8960, eller ett DRA-/repeater-kort) — behövs inte bara för att få igång mjukvaran.
  • Din anropssignal och en reflektor-login (host + AUTH_KEY) för den SVXReflector du vill ansluta till.

Del 1 — Ladda ner Raspberry Pi OS

Hämta 64-bitars Lite-avbildningen av Raspberry Pi OS 13 (Trixie) — "Lite" har inget skrivbord, vilket är vad du vill ha för en nod.

Del 2 — Flasha SD-kortet (med SSH + Wi-Fi förinställt)

Det här är steget som sparar dig ett tangentbord och en skärm. I Raspberry Pi Imager:

  1. Choose Device: din Pi-modell.
  2. Choose OS: Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit).
  3. Choose Storage: ditt SD-kort.
  4. Klicka Next → Edit Settings (kugghjulet / "would you like to apply OS customisation?"). Ställ in:
Inställning Vad du anger
Hostname t.ex. svxnode — du når Pi:n som svxnode.local.
Enable SSH Ja → "Use password authentication" (enklast).
Username / password välj egna, t.ex. användare pi. Skriv ner dem.
Configure wireless LAN ditt Wi-Fi-SSID + lösenord, och ditt Wi-Fi-land (viktigt — annars förblir Wi-Fi avstängt).
Locale / timezone / keyboard ditt land.

Spara, sedan Write. När det är klart, mata ut kortet.

⚠ Hoppar du över Wi-Fi/SSH-anpassningen bootar Pi:n utan något sätt att komma in. Gör antingen om det här steget, eller koppla in en Ethernet-kabel (SSH är fortfarande aktiverat bara om du bockade i det).

Del 3 — Starta Pi:n

Sätt kortet i Pi:n, koppla in radio-/ljudhårdvaran om du har den, och slå på strömmen. Första starten tar en minut eller två (den expanderar filsystemet och ansluter till Wi-Fi). Ge den tid innan du letar efter den.

Del 4 — Hitta Pi:ns IP-adress

Du behöver Pi:ns IP (eller dess .local-namn) för att logga in. Välj det som fungerar:

  • Värdnamn (enklast): använd bara svxnode.local (värdnamnet du satte + .local). Fungerar på de flesta hemnätverk.
  • Din router: öppna routerns adminsida → listan DHCP-klienter / anslutna enheter → hitta svxnode och notera dess IP (t.ex. 192.168.1.42).
  • Skanna nätverket från din dator:
ping svxnode.local
# eller skanna subnätet (Linux/Mac):   nmap -sn 192.168.1.0/24

Del 5 — Anslut via SSH

Windows: ladda ner och kör PuTTY — https://www.putty.org/ . I Host Name skriv svxnode.local (eller IP:n), Port 22, Open. Godta nyckelvarningen första gången, logga sedan in med användarnamnet/lösenordet du satte.

macOS / Linux: använd bara en terminal:

ssh pi@svxnode.local

När du är inne, uppdatera systemet:

sudo apt update && sudo apt full-upgrade -y

SvxLink finns inte som ett aktuellt bygge i Pi:ns standard-repon, så du kompilerar det (Pi:n gör jobbet). Det här enda skriptet installerar byggverktygen, hämtar källkoden från GitHub, bygger och installerar den, och laddar ner de svenska (sv_SE) och engelska (en_US) röstmeddelandena. Klistra in det i SSH-sessionen:

#!/bin/bash
set -e
cd ~
mkdir -p ./projects/svxlink
cd ./projects/svxlink
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
sudo apt update
sudo apt dist-upgrade -y
sudo apt autoremove -y
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
sudo apt install -y \
  build-essential cmake git wget \
  libgpiod3 libgpiod-dev \
  alsa-utils \
  libsigc++-2.0-dev libgsm1-dev libpopt-dev \
  tcl8.6-dev \
  libgcrypt20-dev libspeex-dev libasound2-dev libopus-dev librtlsdr-dev \
  doxygen groff vorbis-tools curl \
  qtbase5-dev qttools5-dev-tools qttools5-dev \
  libjsoncpp-dev libcurl4-gnutls-dev libogg-dev \
  sox
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# system user for svxlink (ignored if it already exists)
if ! id -u svxlink >/dev/null 2>&1; then
  sudo useradd -r -G audio,plugdev,dialout svxlink
fi
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# fetch the source
if [ ! -d svxlink ]; then
  git clone https://github.com/sm0svx/svxlink.git
fi
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
mkdir -p svxlink/src/build
cd svxlink/src/build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc \
      -DLOCAL_STATE_DIR=/var -DWITH_SYSTEMD=yes ..
make -j"$(nproc)"
make doc
sudo make install
sudo ldconfig
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# voice prompts: Swedish + English
cd ~/projects/svxlink
cp svxlink/src/svxlink/scripts/filter_sounds.sh ./
cp svxlink/src/svxlink/scripts/play_sound.sh   ./
[ -d svxlink-sounds-en_US-heather ] || git clone https://github.com/sm0svx/svxlink-sounds-en_US-heather.git
[ -d svxlink-sounds-sv_SE-elin ]    || git clone https://github.com/sm0svx/svxlink-sounds-sv_SE-elin.git
sudo ./filter_sounds.sh svxlink-sounds-en_US-heather en_US
sudo ./filter_sounds.sh svxlink-sounds-sv_SE-elin   sv_SE
cd /usr/share/svxlink/sounds
sudo tar xvjf ~/projects/svxlink/svxlink-sounds-en_US.tar.bz2
sudo tar xvjf ~/projects/svxlink/svxlink-sounds-sv_SE.tar.bz2
💡 make -j"$(nproc)" bygger på alla CPU-kärnor. På en Pi 3 kan kompileringen ta 20–40 minuter — det är normalt. Hämta en kaffe; den jobbar.

Del 7 — Konfigurera svxlink.conf

Configen ligger i /etc/svxlink/svxlink.conf. Redigera den:

sudoedit /etc/svxlink/svxlink.conf

De delar du måste sätta är logic-sektionerna. Den viktigaste är reflektor-anslutningen — här är en fungerande [ReflectorLogic] (hemligheter ersatta med CHANGE_ME):

[ReflectorLogic]
TYPE=Reflector
ID=9
HOSTS=svx.sa7aux.se          ; your reflector's hostname
CALLSIGN="MYCALL"            ; your callsign
AUTH_KEY="CHANGE_ME_long_random_secret"   ; the key your reflector expects
CERT_EMAIL=you@example.org   ; for the auto TLS certificate
DEFAULT_TG=0
MONITOR_TGS=9,240,24016,24020,24021   ; talkgroups you want to hear
UDP_HEARTBEAT_INTERVAL=5
NODE_INFO_FILE=/etc/svxlink/node_info.json
EVENT_HANDLER=/usr/share/svxlink/events.tcl
📥 Vill du ha hela? Ladda ner en komplett, sanerad uppsättning exempel-configar — svxlink.conf, node_info.json, gpio.conf och modulfilerna, alla hemligheter borttagna: svxlink-config-example.zip. Packa upp i /etc/svxlink/ och byt anropssignal, reflektor-host, AUTH_KEY och position till dina egna.

Andra sektioner att titta på:

Sektion Vad den är till för
[GLOBAL] Vilka logics som laddas (LOGICS=SimplexLogic,ReflectorLogic), och språket för röstmeddelanden — sätt LANG=sv_SE eller LANG=en_US.
[SimplexLogic] Nodens egen anropssignal-ID, DTMF-kommandon, och vilken reflektor-logic den länkar till.
[Rx1] / [Tx1] Ljudenheterna och PTT/COS för ditt radiogränssnitt (ALSA-enhet, squelch, CTCSS).
[LocationInfo] Valfri APRS-beacon (position, frekvens) — allt bortkommenterat som standard.
⚠ Publicera aldrig din riktiga AUTH_KEY, lösenord eller e-post. Exemplet ovan är medvetet tomt. Lägg in dina egna värden, håll filen läsbar endast för root, och klistra inte in den riktiga filen i forum eller chattar.

Del 8 — Starta och verifiera

Aktivera och starta noden, titta sedan på loggen:

sudo systemctl enable --now svxlink
sudo systemctl status svxlink
sudo journalctl -u svxlink -f

I loggen ska du se den ansluta till reflektorn och annonsera på ditt valda språk. Om någon pratar på en monitorerad talgrupp hör du det (och ser det i loggen). Ctrl-C slutar följa loggen (tjänsten fortsätter köra).

💡 Sätter du upp en reflektor i stället för en nod? Samma bygge installerade även svxreflector — aktivera den tjänsten (sudo systemctl enable --now svxreflector) och konfigurera /etc/svxlink/svxreflector.conf.

Lägg till webb-dashboarden

När noden körs, ge dig själv en webbsida för att se status och byta talgrupp — installera SvxSpot Dashboard på samma Pi. Den läser samma svxlink.conf och styr noden åt dig.

Felsökning

Symptom Kolla
Når inte svxnode.local Använd IP:n från din router i stället. På vissa nätverk är .local (mDNS) blockerat.
SSH "connection refused" SSH aktiverades inte i Imager, eller så har Pi:n inte bootat än — vänta, eller flasha om med SSH ibockat.
Inget Wi-Fi Fel Wi-Fi-land i Imager, eller fel SSID/lösenord. Flasha om, eller använd Ethernet.
make misslyckas Oftast ett saknat byggpaket — kör om apt install-raden från Del 6, sedan make igen.
Ansluter inte till reflektorn Fel HOSTS, CALLSIGN eller AUTH_KEY — kolla med reflektor-operatören. Titta på journalctl -u svxlink -f.
Inget ljud / inga röstmeddelanden Kolla LANG i [GLOBAL], och att ljud-tarbollarna packades upp i /usr/share/svxlink/sounds.

Se även

  • SvxSpot Dashboard — webbkontrollpanelen för den här noden.
  • chan_svx / chan_svx_sat — brygga en AllStarLink-nod till en SVXReflector i stället.
  • Hamradio — resten av howto:erna för digital röst.
  • Författare: SA7AUX <bjorne@sa7aux.se>. SvxLink © SM0SVX, GNU GPL.