From bae1ae2130920755d06424ae1e36dedbdb6b33c5 Mon Sep 17 00:00:00 2001 From: nicoboy Date: Sat, 18 Jul 2026 19:26:43 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20install=5Fwfb=5Fgs=5Ffr.sh=20=E2=80=94?= =?UTF-8?q?=20prot=C3=A8ge=20wifi=5Fregion=20contre=20l'=C3=A9crasement=20?= =?UTF-8?q?BO=20du=20script=20officiel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/install_wfb_gs_fr.sh | 138 +++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100755 scripts/install_wfb_gs_fr.sh diff --git a/scripts/install_wfb_gs_fr.sh b/scripts/install_wfb_gs_fr.sh new file mode 100755 index 0000000..4ed3de4 --- /dev/null +++ b/scripts/install_wfb_gs_fr.sh @@ -0,0 +1,138 @@ +#!/usr/bin/env bash +# +# install_wfb_gs_fr.sh — Installation/reconstruction de /etc/wifibroadcast.cfg +# (ground station, Jetson) +# +# ───────────────────────────────────────────────────────────────────────── +# POURQUOI CE SCRIPT EXISTE (18 juillet 2026) +# ───────────────────────────────────────────────────────────────────────── +# Le script officiel wfb-ng (install_gs.sh, lancé habituellement via +# curl -s https://raw.githubusercontent.com/svpcom/wfb-ng/master/scripts/install_gs.sh | sudo bash +# ) écrase INCONDITIONNELLEMENT /etc/wifibroadcast.cfg à chaque exécution, +# sans vérifier s'il existe déjà. Son template fixe wifi_region = 'BO' par +# défaut (commentaire du script original : "use BO or GY if you want max +# tx power"), ce qui ignore la réglementation française (limite 13dBm sur +# le canal 149). +# +# Ce one-liner a été relancé chez nous plusieurs fois en réflexe de +# dépannage (ex: après reconstruction du driver RTL8812AU, ou un +# `apt install wfb-ng` qui semblait cassé) — à chaque fois, wifi_region +# repassait silencieusement à 'BO', sans qu'on comprenne pourquoi la +# correction manuelle "revenait toute seule". Cause identifiée le +# 18/07/2026 (voir 20260718_wireclaw_methode_fable_contention_radio.md). +# +# ⚠️ NE PLUS JAMAIS relancer le curl officiel directement sur cette +# machine. Utiliser CE script à la place pour toute réinstallation +# complète de la configuration wfb-ng côté ground station. +# +# ⚠️ AUTRE SOURCE DE RÉGION, FICHIER SÉPARÉ — le même script officiel +# pousse aussi /etc/modprobe.d/wfb.conf avec +# "options cfg80211 ieee80211_regdom=RU" (régulation kernel cfg80211, +# PAS wfb-ng applicatif). Une 3e valeur de région, différente de BO et +# de FR. Ce script-ci NE TOUCHE PAS à ce fichier (portée volontairement +# limitée à wifibroadcast.cfg). Vérifier séparément si besoin : +# cat /etc/modprobe.d/wfb.conf +# +# ───────────────────────────────────────────────────────────────────────── +# QUAND UTILISER CE SCRIPT +# ───────────────────────────────────────────────────────────────────────── +# - Installation initiale de wfb-ng côté Jetson (ground station) +# - Reconstruction complète après un wfb-ng cassé / réinstallation du paquet +# +# QUAND NE PAS L'UTILISER +# ───────────────────────────────────────────────────────────────────────── +# Pour modifier UN SEUL paramètre (ex: juste la région ou juste le canal) +# sur une configuration qui fonctionne déjà, éditez directement le fichier +# existant plutôt que de relancer ce script : +# +# sudo nano /etc/wifibroadcast.cfg +# sudo systemctl restart wfb-server-gs.service +# +# ou en une ligne pour la région seule : +# +# sudo sed -i "s/wifi_region = '.*'/wifi_region = 'FR'/" /etc/wifibroadcast.cfg +# sudo systemctl restart wfb-server-gs.service +# +# ───────────────────────────────────────────────────────────────────────── + +set -euo pipefail + +CFG_PATH="/etc/wifibroadcast.cfg" + +echo "=== install_wfb_gs_fr.sh — configuration wfb-ng (ground station) ===" +echo + +# ───────────────────────────────────────────────────────────────────────── +# Confirmation d'écrasement si le fichier existe déjà +# ───────────────────────────────────────────────────────────────────────── +if [ -f "$CFG_PATH" ]; then + echo "⚠️ $CFG_PATH existe déjà. Contenu actuel (wifi_region / wifi_channel) :" + grep -E "wifi_region|wifi_channel" "$CFG_PATH" || echo " (paramètres non trouvés dans le fichier existant)" + echo + read -r -p "Écraser ce fichier et repartir d'une config neuve ? [y/N] " confirm + case "$confirm" in + [yY][eE][sS]|[yY]) ;; + *) + echo "Annulé. Aucune modification effectuée." + echo "Pour une modification ponctuelle, voir les commentaires en tête de ce script." + exit 0 + ;; + esac + echo +fi + +# ───────────────────────────────────────────────────────────────────────── +# Paramètres interactifs, avec défauts sûrs +# ───────────────────────────────────────────────────────────────────────── +read -r -p "Région wifi_region (réglementation CRDA) [FR]: " WIFI_REGION +WIFI_REGION="${WIFI_REGION:-FR}" + +echo +echo " 149 = canal 5GHz (DFS/UNII, longue portée — config actuelle du projet)" +echo " 1 = canal 2.4GHz (compatibilité plus large, plus de bruit ambiant)" +read -r -p "Canal wifi_channel [149]: " WIFI_CHANNEL +WIFI_CHANNEL="${WIFI_CHANNEL:-149}" + +echo +echo "Configuration retenue : wifi_region='$WIFI_REGION', wifi_channel=$WIFI_CHANNEL" +read -r -p "Confirmer et écrire $CFG_PATH ? [y/N] " confirm2 +case "$confirm2" in + [yY][eE][sS]|[yY]) ;; + *) + echo "Annulé. Aucune modification effectuée." + exit 0 + ;; +esac + +# ───────────────────────────────────────────────────────────────────────── +# Écriture de la config +# +# NOTE : structure reprise du template officiel wfb-ng +# (~/wfb-ng/scripts/install_gs.sh, copie datée du 14/07/2026), avec +# wifi_region forcé à une valeur choisie (FR par défaut) plutôt que 'BO'. +# Si le template upstream évolue, comparer avant de mettre à jour ce script. +# ───────────────────────────────────────────────────────────────────────── +sudo tee "$CFG_PATH" > /dev/null <