🛠 Console série sur USB-OTG : dépanner sans réseau ni câble UART
Objetivos
Cuando la red Wi-Fi está mal configurada o la red está rota, el BPI-M2 Zero guarda un as bajo la manga: su puerto micro-USB OTG (dr_mode = "otg" en el device tree) puede hacerse pasar por un dispositivo serie. La configuración de Armbian de la placa precarga el módulo g_serial y declara ttyGS0 como consola (SERIALCON="ttyS0,ttyGS0"): conectada sola a un PC, la placa enumera un puerto CDC-ACM — no se necesita ni cable USB-serie ni red. Es el método de rescate que conviene conocer antes de romper la configuración.
Material
- BPI-M2 Zero con Armbian (ttyGS0 ya declarado como consola por la ficha de la placa)
- Cable micro-USB de datos (no un cable de carga sin conductores de datos)
- Un PC con Linux (en Windows: controlador CDC-ACM nativo, y luego un terminal en el puerto COM)
- Un primer acceso a la placa (SSH, CON3, o una sesión aún abierta) para activar el gadget
Código completo
# Sur la carte (via SSH ou CON3) : charger le gadget et exposer un getty
sudo modprobe g_serial
sudo systemctl enable --now serial-getty@ttyGS0.service
# Rendre le module permanent pour les prochains sauvetages
echo g_serial | sudo tee /etc/modules-load.d/gserial.conf
# Sur le PC : un /dev/ttyACM0 apparaît dès que le câble OTG est branché
sudo apt install -y picocom
picocom -b 115200 /dev/ttyACM0 # invite de login du BPI-M2 Zero
# En cas de plantage réseau, vérifier côté carte quel rôle prend le port
dmesg | grep -i -e gadget -e ttyGS0
Verificación esperada
Al insertar el cable en el puerto OTG, el PC ve un dispositivo serie USB (lsusb lo lista); picocom muestra el indicador de inicio de sesión; tras la conexión, el comando who muestra una sesión en ttyGS0. La placa sigue siendo accesible incluso con una wlan0 mal configurada.
Errores frecuentes
- Conectar el cable en el puerto micro-USB «Power only»: no hay datos, por lo tanto no aparece ningún ttyACM0 — el puerto OTG es el otro.
- Cable de carga barato sin pines de datos: el gadget existe pero no aparece nada en el PC.
- Alimentar la placa desde el PC mientras hay un cargador conectado al otro puerto: las líneas Vbus de los dos conectores micro-USB están conectadas, resultando en dos fuentes que se disputan los 5 V.
- Olvidar activar g_serial ANTES de perder el acceso a la red: si el sistema ya no arranca, queda la consola CON3 (115200 8N1).
- Buscar ttyGS0 en el PC: ttyGS0 es el nombre en la placa; en el PC es ttyACM0.
Otros tutoriales para esta placa
- Flasher Armbian et premier boot du BPI-M2 Zero
- LED et bouton avec libgpiod sur le port 40 broches
- Wi-Fi AP6212 : le piège de l'antenne U.FL non fournie
- Activer le bus SPI0 et piloter un petit écran TFT
- Survivre avec 512 Mo : zram, swap compressé et services légers
- Câbler l'Ethernet 10/100 EMAC avec le carrier Zero-EPHY
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash