Jump to content

Hamradio/svxlink node/es

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.

Un recorrido completo y guiado: de una tarjeta microSD en blanco a un nodo SvxLink funcionando en una Raspberry Pi — descargar el SO, flashearlo con Wi-Fi y SSH ya configurados, encontrar la Pi en tu red, iniciar sesión, compilar SvxLink, poner una configuración y añadir un panel web. No hace falta experiencia previa en Linux. Para copiar y pegar.

💡 Con qué acabarás: una Raspberry Pi con SvxLink, conectada a un SVXReflector, con avisos de voz en sueco e inglés, que puedes ver y controlar desde un navegador. Calcula una hora (la mayor parte es la Pi compilando sola).
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.

Qué necesitas

  • Una Raspberry Pi 3, 4 o 5 (una Pi Zero 2 W sirve pero compila lento).
  • Una tarjeta microSD, de 16 GB o más, y un lector de tarjetas en tu PC.
  • Una interfaz de audio para el lado de radio (tarjeta de sonido USB, un HAT como el WM8960, o una placa DRA/repetidor) — no necesaria solo para poner en marcha el software.
  • Tu indicativo y un login de reflector (host + AUTH_KEY) del SVXReflector al que quieras unirte.

Parte 1 — Descargar Raspberry Pi OS

Consigue la imagen Lite de 64 bits de Raspberry Pi OS 13 (Trixie) — «Lite» no tiene escritorio, que es lo que quieres para un nodo.

Parte 2 — Flashear la tarjeta SD (con SSH + Wi-Fi preconfigurados)

Este es el paso que te ahorra teclado y monitor. En Raspberry Pi Imager:

  1. Choose Device: tu modelo de Pi.
  2. Choose OS: Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit).
  3. Choose Storage: tu tarjeta SD.
  4. Haz clic en Next → Edit Settings (el engranaje / «would you like to apply OS customisation?»). Configura:
Ajuste Qué poner
Hostname p. ej. svxnode — llegarás a la Pi como svxnode.local.
Enable SSH Sí → «Use password authentication» (lo más simple).
Username / password elige los tuyos, p. ej. usuario pi. Apúntalos.
Configure wireless LAN tu SSID Wi-Fi + contraseña, y tu país Wi-Fi (importante o el Wi-Fi queda apagado).
Locale / timezone / keyboard tu país.

Guarda y luego Write. Cuando termine, expulsa la tarjeta.

⚠ Si te saltas la personalización de Wi-Fi/SSH, la Pi arranca sin forma de entrar. O rehaces este paso, o enchufas un cable Ethernet (SSH sigue activo solo si lo marcaste).

Parte 3 — Arrancar la Pi

Mete la tarjeta en la Pi, conecta el hardware de radio/audio si lo tienes y enciéndela. El primer arranque tarda un minuto o dos (expande el sistema de archivos y se une al Wi-Fi). Dale tiempo antes de buscarla.

Parte 4 — Encontrar la dirección IP de la Pi

Necesitas la IP de la Pi (o su nombre .local) para iniciar sesión. Elige lo que funcione:

  • Hostname (lo más fácil): usa simplemente svxnode.local (el hostname que pusiste + .local). Funciona en la mayoría de redes domésticas.
  • Tu router: abre la página de administración del router → la lista clientes DHCP / dispositivos conectados → busca svxnode y anota su IP (p. ej. 192.168.1.42).
  • Escanea la red desde tu PC:
ping svxnode.local
# o escanea la subred (Linux/Mac):   nmap -sn 192.168.1.0/24

Parte 5 — Conectar por SSH

Windows: descarga y ejecuta PuTTY — https://www.putty.org/ . En Host Name escribe svxnode.local (o la IP), Port 22, Open. Acepta el aviso de clave la primera vez y entra con el usuario/contraseña que pusiste.

macOS / Linux: usa simplemente una terminal:

ssh pi@svxnode.local

Una vez dentro, actualiza el sistema:

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

SvxLink no está como build actual en los repos por defecto de la Pi, así que lo compilas (la Pi hace el trabajo). Este único script instala las herramientas de compilación, obtiene el código de GitHub, lo compila e instala, y descarga los avisos de voz en sueco (sv_SE) e inglés (en_US). Pégalo en la sesión SSH:

#!/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)" compila en todos los núcleos de CPU. En una Pi 3 la compilación puede tardar 20–40 minutos — es normal. Ve a por un café; está trabajando.

Parte 7 — Configurar svxlink.conf

La configuración está en /etc/svxlink/svxlink.conf. Edítala:

sudoedit /etc/svxlink/svxlink.conf

Las partes que debes configurar son las secciones logic. La más importante es la conexión al reflector — aquí tienes un [ReflectorLogic] funcional (secretos sustituidos por 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
📥 ¿Quieres el archivo completo? Descarga un conjunto completo y saneado de configuraciones de ejemplo — svxlink.conf, node_info.json, gpio.conf y los archivos de módulo, con todos los secretos en blanco: svxlink-config-example.zip. Descomprímelo en /etc/svxlink/ y cambia el indicativo, el host del reflector, el AUTH_KEY y la posición por los tuyos.

Otras secciones que conviene mirar:

Sección Para qué sirve
[GLOBAL] Qué logics se cargan (LOGICS=SimplexLogic,ReflectorLogic) y el idioma de los avisos — pon LANG=sv_SE o LANG=en_US.
[SimplexLogic] El ID de indicativo del propio nodo, los comandos DTMF y con qué logic de reflector se enlaza.
[Rx1] / [Tx1] Los dispositivos de audio y PTT/COS de tu interfaz de radio (dispositivo ALSA, squelch, CTCSS).
[LocationInfo] Baliza APRS opcional (posición, frecuencia) — todo comentado por defecto.
⚠ Nunca publiques tu AUTH_KEY real, contraseñas o correo. El ejemplo de arriba está intencionadamente en blanco. Pon tus propios valores, mantén el archivo legible solo por root y no pegues el archivo real en foros o chats.

Parte 8 — Arrancar y verificar

Activa y arranca el nodo, luego observa el log:

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

En el log deberías verlo conectarse al reflector y anunciar en el idioma elegido. Si alguien habla en una talkgroup monitorizada, lo oirás (y lo verás en el log). Ctrl-C deja de seguir el log (el servicio sigue corriendo).

💡 ¿Montas un reflector en vez de un nodo? El mismo build también instaló svxreflector — activa ese servicio (sudo systemctl enable --now svxreflector) y configura /etc/svxlink/svxreflector.conf.

Añadir el panel web

Cuando el nodo funcione, date una página de navegador para ver estado y cambiar talkgroups — instala el SvxSpot Dashboard en la misma Pi. Lee ese mismo svxlink.conf y controla el nodo por ti.

Resolución de problemas

Síntoma Comprobar
No llego a svxnode.local Usa la IP de tu router. En algunas redes .local (mDNS) está bloqueado.
SSH «connection refused» No se activó SSH en el Imager, o la Pi aún no ha arrancado — espera, o vuelve a flashear con SSH marcado.
Sin Wi-Fi País Wi-Fi incorrecto en el Imager, o SSID/contraseña mal. Reflashea, o usa Ethernet.
make falla Normalmente falta un paquete de compilación — vuelve a ejecutar la línea apt install de la Parte 6, luego make otra vez.
No conecta al reflector HOSTS, CALLSIGN o AUTH_KEY incorrectos — consulta al operador del reflector. Observa journalctl -u svxlink -f.
Sin audio / sin avisos de voz Revisa LANG en [GLOBAL] y que los tarballs de sonido se descomprimieran en /usr/share/svxlink/sounds.

Véase también

  • SvxSpot Dashboard — el panel de control por navegador para este nodo.
  • chan_svx / chan_svx_sat — en su lugar, enlazar un nodo AllStarLink con un SVXReflector.
  • Hamradio — el resto de las guías de voz digital.
  • Autor: SA7AUX <bjorne@sa7aux.se>. SvxLink © SM0SVX, GNU GPL.