Instalar Openwebrx en Windows 10 con WSL

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:

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...

¿Y porqué no en un ordenador Windows 10?

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).

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:


Instalación de Ubuntu sobre WSL - Subsistema Linux para Windows

Abrimos una ventana de comandos tecleando CMD y seleccionamos "ejecutar como administrador" y dentro de esta ventana tecleamos "wsl --install -d Ubuntu" o simplemente "wsl --install"

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, sin cerrar la ventana de comandos y con Ubuntu iniciado, podremos instalar Openwebrx siguiendo las instrucciones del GitHub de Marat Fayzullin: luarvique.github.io/ppa/#if-you-are-an-ubuntu-user- 

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

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, logicamente no recibiremos nada.... todavía.

Enlazar receptor SDR del PC Windows con Ubuntu corriendo en WSL

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.

Una vez instalado, abrimos el PowerShell de Windows en Modo Administrador y tecleamos el comando "usbipd wsl list" para ver los dispositivos USB que tenemos conectados a nuestro ordenador. Una vez encontrado nuestro dispositivo SDR en ese listado, hay que anotar el busID de dicho dispositivo (el mio es el 5-3).

Para que nuestro Ubuntu corriendo bajo wsl vea dicho dispositivo y pueda utilizarlo, deberemos teclear el comando "usbipd wsl attach --busid 5-3" sustituyendo en caso necesario el busID por el vuestro (en mi caso era el 5-3).

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 son:

Abrir puerto 8073 en el firewall de Windows 

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.

Troubleshooting 

Si se abre Openwebrx pero no aparece el waterfall:

Desde PowerShell comprobar que el RTL esté conectado con: usbipd wsl list

si no lo está (aparecerá como Not Attached), conectarlo con:  usbip wsl attach --busid 5-3 (cambiar por el busID de tu dispositivo).


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):

Para conectar el RTL a Ubuntu WSL:  sudo usbip attach -r 192.168.0.50 -b  5-3 donde deberás cambiar la IP por la IP local de tu ordenador y el 5-3 por el busID de tu  dispositivos USB.