Openwebrx como ya sabreis es un servidor web SDR instalable sobre Linux (normalmente utilizando una Raspberry Pi) que proporciona el acceso via navegador web a nuestro receptor SDR. Al ser una tecnología basada en HTML5 tenemos la ventaja de poder acceder desde cualquier dispositivo (multiplataforma), simplemente utilizando el navegador web.
Además trae integrados (de serie) decodificadores para diferentes modos digitales como: FT8, FT4, DMR, DStar, APRS,Packet, Pocsag, etc.
Actualmente hay dos desarrolladores trabajando para mejorar Openwebrx, cuyo código podeis ver en GitHub:
Jakob DD5JFK: github.com/jketterl/openwebrx
Marat Fayzullin: github.com/luarvique/openwebrx (este es el código que voy a instalar con este tutorial)
En ambos casos, Openwebrx está diseñado para correr sobre Linux, por eso normalmente se utiliza la Raspberry Pi como hardware para tener un receptor SDR Online de forma sencilla barata, pero últimamente las Raspberrys se han puesto por las nubes...
En mi caso tengo un ordenador con Windows 10 en el cuarto de radio encendido 24 horas y pensé, que porque comprar una raspberry pi (habían subido mucho de precio) teniendo un ordenador siempre encendido.....
La solución vino del amigo Niceto EA5ZL, el cual me instaló todo lo necesario en mi ordenador y lo dejó funcionando. Muchas gracias Ni, que haríamos sin tí... En este tutorial voy a intentar explicar (dentro de mis limitaciones) como lo hizo Niceto para que funcionara en mi ordenador Windows 10.
En Windows, desde la versión 10, se incluye una capa de compatibilidad con Linux que permite hacer correr aplicaciones Linux estando en un entorno Windows: es.wikipedia.org/wiki/Subsistema_de_Windows_para_Linux
Por lo tanto, utilizando WSL se instala un sistema operativo Linux (en mi caso instalé Ubuntu) el cual arrancamos desde una ventana de comandos en windows y sobre este Linux instalamos Openwebrx (versión para Ubuntu). La única pega que de momento he visto es que el codecserver que permite escuchar DMR es ilegal, por lo tanto:
Esta característica de Windows hay que activarla (gracias Alberto EA1DA por la advertencia) desde el Panel de Control de Windows:
Activar estas dos características:
Plataforma de Máquina Virtual
Subsistema de Windows para Linux
Abrimos una ventana de comandos tecleando CMD y seleccionamos "ejecutar como administrador" y dentro de esta ventana tecleamos "wsl --install -d Ubuntu-22.04". Con ello se instala Ubuntu en su versión 22.04. Es importante hacerlo sobre esta versión de Ubuntu, ya que en otras versiones no puedo asegurar que funcionen todos los paquetes.
En los pasos finales de la instalación nos pedirá nombre para el usuario root (UNIX) y nos pedirá una contraseña para este usuario. Mientras se teclea la contraseña, no se muestra el texto (es normal). Además, se os pedirá escribir la contraseña dos veces. Esta contraseña habrá que recordarla para los siguientes pasos.
Una vez finalizada la instalación, tendremos instalada una versión de Ubuntu que podremos hacer correr cuando queramos abriendo una ventana de comandos de windows (cmd) y tecleando "wsl". Sabremos que Ubuntu está corriendo al ver en la ventana de comandos aparecer una linea como esta:
Una vez tengamos Ubuntu corriendo, dejamos la ventana de comandos abierta (imagen anterior) y desde esta misma ventana de comandos instalamos Openwebrx siguiendo las instrucciones del GitHub de Marat Fayzullin: luarvique.github.io/ppa/#if-you-are-an-ubuntu-user- como si estuviéramos en una terminal de Ubuntu:
Acceder como usuario root, tecleando:
sudo su
Añadir el repositorio de Marat Fayzullin para poder instalar openwebrx (al ejecutar estos comandos, nos pedirá la contraseña de usuario que creamos al instalar Ubuntu):
wget -O - https://luarvique.github.io/ppa/openwebrx-plus.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/openwebrx-plus.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/openwebrx-plus.gpg] https://luarvique.github.io/ppa/ubuntu ./" > /etc/apt/sources.list.d/openwebrx-plus.list
apt update
Añadir el repositorio oficial de Jakob de forma similar a los pasos anteriores:
wget -O - https://repo.openwebrx.de/debian/key.gpg.txt | gpg --dearmor -o /usr/share/keyrings/openwebrx.gpg
echo "deb [signed-by=/usr/share/keyrings/openwebrx.gpg] https://repo.openwebrx.de/ubuntu/ jammy main" > /etc/apt/sources.list.d/openwebrx.list
apt update
Instalar Openwebrx con el comando:
apt install openwebrx
En los últimos pasos de la instalación se nos pedirá una contraseña para el usuario "admin". Este usuario es el posteriormente utilizaremos para acceder al apartado "Settings" de nuestro Openwebrx, por lo tanto deberemos recordar dicha contraseña para el futuro.
De esta forma, Openwebrx queda instalado como un servicio que arranca al iniciar Ubuntu bajo WSL. Para probar que está bien instalado, teclear "http://localhost:8073/" en un navegador web del mismo ordenador donde está corriendo wsl y deberá de abrirse la aplicación openwebrx con los valores por defecto.
NOTA: Como todavía no tenemos conectado el pincho RTL-SDR a Ubuntu, lógicamente no recibiremos nada.... todavía.
Dejamos abierto la ventana de comandos con el Ubuntu corriendo bajo WSL y seguimos con el proceso.
Para que nuestro Ubuntu corriendo bajo WSL detecte los dispositivos USB como el RTL-SDR conectados al PC Windows, necesitamos instalar una utilidad windows llamada USBIPD. Podemos descargar la última versión desde el siguiente enlace de GitHub: github.com/dorssel/usbipd-win/releases e instalarlo como cualquier software de Windows. Al momento de escribir este artículo la última versión estables es la 4.3.0. Descargar haciendo clic sobre el archivo usbipd-win x.x.x .msi
Se instala con un doble-clic sobre el archivo msi descargado
Una vez instalado, es interesante tener dos ventanas abiertas (como podéis ver en las imágenes) una con el PowerShell de Windows en modo Administrador (la de color azul en la parte inferior) y la otra con la ventana de comandos en la que está corriendo Ubuntu bajo WSL (la de fondo negro).
Para iniciar PowerShell en modo Administrador, teclear "power" en la casilla de la lupa de Windows y en el menú que aparece a la derecha hacer clic en "Ejecutar como Administrador":
Desde el PowerShell de Windows en Modo Administrador tecleamos el comando "usbipd list" (en la parte azul de abajo) para ver los dispositivos USB que tenemos conectados a nuestro ordenador. La parte de arriba (parte blanca) del Powershell es para ejecutar un script, pero no la vamos a utilizar. Nos centramos en la parte azul.
Una vez encontrado nuestro dispositivo SDR en ese listado, hay que anotar el busID de dicho dispositivo. En mi caso, las pruebas las he hecho con un SDRplay chino que aparece con el BUSID 3-10, aunque desgraciadamente este dispositivo no sirve para Openwebrx al ser un clon chino no oficial.
Una vez anotado el BUSID de nuestro dispositivo, es conveniente utilizar el comando bind para que el dispositivo pueda ser compartido. Para ello teclearemos el comando:
usbipd bind --busid 3-10
siempre sustituyendo el busID por el vuestro (en mi caso era el 3-10).
Para que nuestro Ubuntu corriendo bajo wsl vea dicho dispositivo y pueda utilizarlo, deberemos teclear el comando:
usbipd attach --wsl --busid 3-10
como siempre sustituyendo el busID por el vuestro. Si aparecen unos mensajes en rojo (como en la imagen) no os preocupeis.
Tras realizar el "attach" el dispositivo aparecerá como "Attached" en el listado de usbipd (que podeis ver tecleando usbipd list:
Para comprobar que todo ha ido bien, desde nuestra ventana de comandos donde está corriendo Ubuntu, tecleamos el comando "lsusb" el cual nos lista los dispositivos USB conectados a Ubuntu. Si vemos nuestro RTl-SDR en dicho listado significa que todo ha ido bien y que ya nos queda menos para escuchar nuestro SDR.....
En RESUMEN, los pasos para conectar nuestro dispositivo SDR a Ubuntu WSL son y empezar a utilizarlo:
Desde PowerShell: usbipd list para ver la busID de nuestro dispositivo.
Desde PowerShell: usbipd bind --busid 3-10 para que el dispositivo sea utilizable por WSL
Desde PowerShell: usbipd attach --wsl --busid 3-10 para conectar el dispositivo a Ubuntu bajo WSL
Desde Ubuntu: lsusb para confirmar que Ubuntu ha conectado con el dispositivo SDR
Estos pasos habrá que realizarlos cada vez que reiniciemos nuestro PC para volver a utilizar nuestro SDR
Para que corra openwebrx correctamente es necesario crear una regla de entrada en el firewall de windows que permita acceder al puerto 8073. Esto es sencillo y hay muchos tutoriales por Internet.
Accedemos a la configuración avanzada del Firewall de windows y creamos una nueva regla de entrada TCP al puerto 8073
Si nuestra intención es usarlo en modo local (en Windows) es suficiente con abrir una ventana de comandos y teclear "wsl". Se iniciará Ubuntu bajo Windows con el servicio Openwebrx corriendo. Esta ventana de comandos la podemos minimizar y desde el navegador de Internet abrir openwebrx mediante la dirección URL: http://localhost:8073/ Ahora si deberíamos tener nuestro SDR funcionando....
Si queremos utilizarlo desde otro ordenador de la misma red local, necesitaremos sustituir "localhost" por la IP local del ordenador en que está corriendo openwebrx. Para saber cual es la IP local de dicho ordenador, teclear "if config" desde la ventana de comandos en la que está corriendo Ubuntu bajo WSL, y buscar la etiqueta "inet addr".
Lo que aparece tras dicha etiqueta, será la IP local a la que nos tenemos que conectar para abrir openwebrx desde otro ordenador dentro de la misma red.
Si el objetivo es acceder desde fuera de nuestra red local, el asunto se complica algo más, ya que deberemos saber la IP Pública que nos da el proveedor del servicio de Internet y además abrir el puerto 8073 en nuestro router, para que podamos acceder desde fuera.
En la siguiente página web tenemos instrucciones sobre como utilizar Openwebrx y lo que significa todo lo que vemos en pantalla:
Si se abre Openwebrx pero no aparece el waterfall:
Desde PowerShell comprobar que el RTL esté conectado con: usbipd list
Si no está conectado (aparecerá como Not Attached), conectarlo con: usbip attach --wsl--busid 3-10 (cambiar por el busID de tu dispositivo).
Si no funciona así, realizar primero un bind con: usbip bind --wsl--busid 3-10 y después un attach con: usbip attach --wsl--busid 5-3
Para comprobar si el RTL está conectado a Ubuntu: lsusb debería aparecer tu dispositivo en la lista (en mi caso, el RTL-SDR es el Realtek RTL2838):