Hamradio/svxlink node/es
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.
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.
- Lo más fácil: instala Raspberry Pi Imager (descarga el SO por ti): https://www.raspberrypi.com/software/
- El Imager funciona en Windows, macOS y Linux.
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:
- Choose Device: tu modelo de Pi.
- Choose OS: Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit).
- Choose Storage: tu tarjeta SD.
- 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.
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
svxnodey 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
Parte 6 — Instalar SvxLink
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
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. |
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).
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.
