1. Crear el archivo de configuración
En la partición /boot/firmware (visible desde Windows), crear un archivo llamado wifi_config con este formato:
SSID=NombreDeLaRed PSK=ContraseñaDeLaRed
⚠️ Importante:
-
Usar solo UTF-8 sin BOM (notepad++ o VS Code permiten guardarlo así).
-
No dejar espacios extra al final de las líneas.
-
Evitar saltos de línea de Windows (
\r\n), usar saltos UNIX (\n).
Ejemplo válido:
SSID=WIFI PSK=12345678
2. Crear el script /usr/local/bin/apply_boot_wifi.sh
Instalar el script que leerá wifi_config y configurará la conexión Wi-Fi:
sudo nano /usr/local/bin/apply_boot_wifi.sh
Contenido:
#!/bin/bash set -euo pipefail LOG=/var/log/apply_boot_wifi.log echo "=== apply_boot_wifi run at $(date) ===" >> "$LOG" CFG="/boot/firmware/wifi_config" if [ ! -f "$CFG" ]; then echo "[ERROR] $CFG no existe" >> "$LOG" exit 1 fi SSID=$(grep -m1 '^SSID=' "$CFG" | cut -d= -f2- | sed 's/^ *//;s/ *$//') PSK=$(grep -m1 '^PSK=' "$CFG" | cut -d= -f2- | sed 's/^ *//;s/ *$//') echo "[INFO] SSID='$SSID'" >> "$LOG" echo "[INFO] Intentando conectar..." >> "$LOG" # Crear/actualizar conexión en NetworkManager if nmcli device wifi list | grep -q -F "$SSID"; then if nmcli connection show "$SSID" >/dev/null 2>&1; then nmcli connection modify "$SSID" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "$PSK" else nmcli connection add type wifi ifname wlan0 con-name "$SSID" ssid "$SSID" nmcli connection modify "$SSID" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "$PSK" fi nmcli connection up "$SSID" >> "$LOG" 2>&1 || echo "[ERROR] Falló la conexión" >> "$LOG" else echo "[ERROR] SSID '$SSID' no encontrado en escaneo" >> "$LOG" fi
Dar permisos de ejecución:
sudo chmod +x /usr/local/bin/apply_boot_wifi.sh
3. Crear el servicio systemd
Crear el archivo de servicio:
sudo nano /etc/systemd/system/apply-boot-wifi.service
Contenido:
[Unit] Description=Apply WiFi config from /boot/firmware/wifi_config After=network-pre.target Wants=network-pre.target [Service] Type=oneshot ExecStart=/usr/local/bin/apply_boot_wifi.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target
Activar y arrancar:
sudo systemctl daemon-reload sudo systemctl enable apply-boot-wifi.service sudo systemctl start apply-boot-wifi.service
4. Verificación
-
Revisar el log:
cat /var/log/apply_boot_wifi.log
Debe aparecer algo como:
=== apply_boot_wifi run at Mon 15 Sep 20:49:05 CEST 2025 === [INFO] SSID='WIFI' [INFO] Intentando conectar... [INFO] Conectado a 'WIFI'
-
Ver estado de red:
nmcli device status ip -4 addr show wlan0
-
Probar ping a Internet:
ping -c3 8.8.8.8
5. Uso práctico
-
Desde Windows, editar
/boot/firmware/wifi_configcon el nuevo SSID/PSK. -
Guardar y expulsar la tarjeta SD.
-
Reiniciar la Raspberry Pi.
-
La Pi se conectará automáticamente a la nueva red.
✅ Con esto tienes una Raspberry Pi portátil donde el Wi-Fi se configura sin tocar Linux, solo editando un archivo en la partición accesible desde Windows.
SrRubio
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.