Outils pour utilisateurs

Outils du site


projets:openwebrx:index

SERVEUR OPENWEBRX

🚧 Cette page est un WIP (Work In Progress). Tout ne fonctionne pas (encore) à 100% ! 🚧
Ne vous fiez pas à cette page tant que ce panneau sera présent.

📒 Table des matières

Intro

Objectif

Transformer un vieux laptop de récupération en serveur OpenWebRX. Monter un serveur OpenWebRX à partir d'un client léger d'occasion et bon marché et d'un clone de SDRPlay RSP1.

Pourquoi ?

Le plus souvent, OpenWebRX+ est utilisé avec un Raspberry Pi, mais depuis la crise du COVID entre 2019 et 2021, et la pénurie de composants, puis l'inflation qui a suivi, le prix des Pi s'est envolé. Alors pourquoi ne pas utiliser une vieille bécane qui traînait dans les placards une machine très abordable (32,00€, port compris) pour faire un serveur OpenWebRX* ?

*et pourquoi pas rtl_tcp pour une ou plusieurs clef USB RTL-SDR

OpenWebRX+

OpenWebRX+ est un logiciel de SDR (Software Defined Radio) adossé à un serveur web, forké depuis le projet “OpenWebRX”. Il permet d'utiliser un récepteur SDR (clef RTL-SDR, SDRPlay RSP1A, etc.) avec un navigateur web depuis n'importe où sur la planète. OpenWebRX+ supporte nativement beaucoup de mode de modulations et modes de transmissions (voix, images, données) que l'on peut trouver sur les bandes HF, VHF et UHF.

Il est bourré de fonctionnalités intéressantes comme :

  • Décodage AIS, SSTV, FAX, FLEX, POCSAG, HFDL, VDL2, ISM, SAM, RTTY, and CW decoders
  • Décodage DTMF, EEA, EIA, CCIR, ZVEI SELCALL
  • Décodage SSTV et FAX en arrière plan avec explorateur d'images
  • Enregistreur intégré pour l'audio reçue
  • Scanner intégré
  • Filtre de bruits ajustables
  • Signets automatiques pour le broadcast en HF
  • Signets automatiques pour les relais radioamateurs à proximité
  • … et beaucoup d'autres…

URL du projet : https://github.com/luarvique/openwebrx OpenWebRX+ ppa pour Ubuntu : https://luarvique.github.io/ppa/

🪛 Hardware

⛔️ Le vieux laptop

Le vieux laptop que je recycle pour ce projet est un Medion Belinea O.book 3.1.

  • Screen Size : 15.4“
  • Resolution : 1280 x 800 (WXGA)
  • CPU : Intel® Core™2 Duo CPU ― T5250 @ 1.50GHz
  • GPU : Intel® Mobile GM965/GL960
  • RAM : 3GB
  • Core Qty : Dual-Core
  • Storage : 80 GB HDD SATA 1.5Gb/s
  • Battery Capacity : H.S. (4400 mAh à l'orgine)
  • Année de fabrication : 2008

Ce laptop ne disposant pas, au vu de son grand âge, d'un port USB 3, il est impossible de l'utiliser avec le clone de RSP1. Il fera sa vie dans un autre projet… 😉

✅ Client Léger Hewlett-Packard T520

Aperçu

  • CPU + GPU : APU AMD GX-212JC Dual Core 1,2 GHz SOC APU avec carte graphique AMD Radeon HD*
  • Mémoire : 2 Go SODIMM SDRAM DDR3L-1600
  • Disque : 16Go SSD M.2
  • USB
    • USB3 : 2 ports (en façade)
    • USB2 : 4 ports (à l'arrière)
  • Vidéo
    • 1 × VGA
    • 2 × DisplayPort
  • Audio
    • 1 mini-jack stéréo 1/8 pouce sur le panneau avant avec la mention casque
    • 1 mini-jack stéréo 1/8 pouce sur le panneau avant avec la mention microphone
  • Réseau : Gigabit Ethernet
  • Accès au BIOS : F10
  • Accès au bootmenu : F9
  • Année de lancement : Juin 2014

Plus d'infos

Documentation

✔️ Le récepteur SDR

Le récepteur SDR choisi est le “RSP1S” un clone Simplifié du “RSP1” de SRDPlay. On trouve ce récepteur SDR sur les sites asiatiques pour un prix entre 30 et 40€. Ses performances ne sont pas celles du matériel qu'il copie, mais suffisent dans un premier temps pour ce projet. Le modèle dont je dispose a 5 entrées distinctes suivies de filtres de bande.

Plus d'infos ici :

💾 Installation du serveur linux

L'OS utilisé est un Ubuntu 22.04.3 Server (sans interface graphique).

🔧 Configuration de l'OS

🟢 Ignorer la fermeture de l'écran

🟢 On commence par mettre tout à jour

sudo apt update
sudo apt dist-upgrade -y

Pour pouvoir utiliser le laptop avec l'écran refermé (et ainsi gagner de la place) sans que la machine ne soit plongée en veille, il faut modifier, en tant que root, une directive de configuration dans le fichier /etc/systemd/logind.conf :

[Login]
#HandleLidSwitch=suspend 
HandleLidSwitch=ignore

Puis il faut relancer le service

sudo systemctl restart systemd-logind

🟢 Ajouter quelques outils utiles

sudo apt install -y htop glances unzip git build-essential cmake

🔧 Sécuriser la machine

Dans le cas d'une utilisation à travers internet, la machine sera exposée, c'est donc une bonne idée de la protéger.

🟢 Firewall

⏵ Installation
sudo apt install -y ufw 
⏵ Configuration
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
⏵ Ajouter le port 8073 pour OpenWebRX
sudo ufw allow 8073
⏵ Mise-en-route
sudo ufw enable
⏵ Vérifier les services autorisés
sudo ufw status

🟢 Fail2Ban

Fail2Ban bannit les adresses IP qui tentent de manière répétitive et échouent à se connecter. Il contient et ralentit les tentatives d'attaque par brute-force sur la machine.

⏵ Installation
sudo apt install -y fail2ban
⏵ Fichier de conf local

Si on veut pouvoir modifier la conf, il ne faut pas le faire dans le fichier jail.conf mais il faut disposer d'un fichier jail.local.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
⏵ Ajouter vos IPs en whitelist

Éditer /etc/fail2ban/jail.local en tant que root et ajouter vos adresses IP à la directive ignoreip (IPv4 ou IPv6, séparés par des espace) :

ignoreself = true
ignoreip = 127.0.0.1/8 ::1 192.168.0.0/16
⏵ Redémarrer Fail2Ban
sudo service fail2ban restart

Outils SDR supplémentaires

Puisqu'on dispose d'un serveur dédié à la réception SDR, c'est un terrain de jeu idéal pour plusieurs autres expérimentations.

sudo apt install -y rtl-sdr

💿 Installation d'OpenWebRX+

Dépôts

Installer les dépôts dans une console en tant que root :

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

Ne pas oublier d'ajouter le dépot orginal d'OpenWebRX (nécessaire pour certains paquets). Toujours dans une console en tant que root :

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

OpenWebRX itself

sudo apt install -y openwebrx

Installations manuelles supplémentaires

🟢 Création d'un espace dédié

On va créer un espace dédié pour y mettre tous les logiciels et bibliothèques qu'on va compiler “à la main” pour OpenWebRX+.

mkdir "$HOME/sdr"
# on va avoir besoin de compiler du code externe, donc...
sudo apt install -y git build-essential cmake

🟢 Installation de SoapySDR

sudo apt install -y libsoapysdr0.8 libsoapysdr-dev soapysdr-tools
sudo apt install -y soapysdr-module-all

➊ Après testé avec un RaspberryPi, OpenWebRX du 2023-10-11 fonctionne “out of the box” avec le clone de RSP1. En regardant en détail, la version de SoapySDR utilisée sur le Pi est 0.7 et non 0.8.
➋ Sur le même RapsberryPi, l'image OpenWebRX+ du 2023-10-22 ne fonctionne pas avec le clone de RSP1. La version de SoapySDR utilisée est aussi la 0.7. Est-ce que la version des drivers a son importance ?
➌ Autre détail amusant : malgré le driver SDRplay installé, lsusb reste muet et n'affiche pas SDRPlay RSP1 sur le port USB concerné, alors que tout fonctionne parfaitement…

🟢 Les drivers SDRPlay

  • Se rendre sur cet URL : https://www.sdrplay.com/api/
  • Choisir Linux x86
  • Cliquer sur “Download API Linux 3.07”
  • Et se faire suer à essayer de le transférer sur le serveur, puisque le captcha du site de SDRPlay empêche d'accéder à l'URL de téléchargement pour pouvoir l'utiliser avec wget directement depuis le serveur
  • Donc voilà le fichier en question : sdrplay_rsp_api-linux-3.07.1.run.zip
  • Extraire le .ZIP et donner les droits d'exécution au fichier :
    chmod +x ./SDRplay_RSP_API-Linux-3.07.1.run
  • Exécuter le binaire :
    ./SDRplay_RSP_API-Linux-3.07.1.run
  • Répondre aux questions
  • Brancher le (clone de) RSP1 et faire un lsusb pour constater que
    Bus 001 Device 002: ID 1df7:2500 SDRplay RSP1
  • 🙌

🟢 Les (anciens) drivers SDRPlay

Puisque manifestement le clone de RSP1 fonctionne sans encombre avec les anciennes versions d'OpenWebRX mais pas avec les plus récentes, il y a un souci avec les pilotes récents.
J'ai donc compilé tous les pilotes (“API”) et scripts de l'ancienne version (2.13.1) pour Linux x64 et ARM32 / ARM64 dans un zip : sdrplay_linux_pi_api_2.13.1.zip

🟢 Librairie SoapySDR

cd "$HOME/sdr"
git clone https://github.com/pothosware/SoapySDRPlay.git
cd "$HOME/sdr/SoapySDRPlay"
mkdir "$HOME/sdr/SoapySDRPlay/build"
cd "$HOME/sdr/SoapySDRPlay/build"
cmake ..
make
sudo make install
cd "$HOME/sdr"

Après plusieurs tests, le clone de RSP1 ne semble fonctionner qu'avec une ancienne version de SoapySDR, la 0.7.
Les sources sont trouvables ici : https://github.com/pothosware/SoapySDR/releases/tag/soapy-sdr-0.7.2

Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
projets/openwebrx/index.txt · Dernière modification : de Elektro LUDIKITS