🛠 Monter un point d'accès 4G avec le module Quectel EC20 du port mini-PCIe
Objetivos
El carrier BPI-CM4IO expone en su puerto mini-PCIe PCIe, USB 2.0 y una ranura para micro-SIM: la wiki del fabricante documenta explícitamente un módulo LTE Quectel EC20 como pasarela WAN (controlador qmi_wwan, herramienta quectel-CM, alternativa pppd, puerto AT en /dev/ttyUSB2). Vas a instalar el módulo, crear la interfaz wwan0, conectar con el operador y luego activar el compartimiento NAT para convertir el BPI-CM4 en un router 4G de respaldo.
Hardware
- BPI-CM4 + BPI-CM4IO con Armbian o imagen del fabricante
- Módulo Quectel EC20 en formato mini-PCIe
- Tarjeta micro-SIM de datos (preferiblemente con PIN desactivado) + 2 antenas u.FL
- Cable Ethernet hacia la red local a servir
Código completo
# 1) Carrier éteint : insérer l'EC20, la micro-SIM, visser les 2 antennes u.FL.
sudo apt update && sudo apt install -y usbutils ppp curl minicom
lsusb | grep -i quectel # ID vendeur 2c7c attendu
ls /dev/ttyUSB* # port AT = /dev/ttyUSB2
# 2) Diagnostic AT
sudo minicom -D /dev/ttyUSB2 -b 115200
# AT+CPIN? -> READY (sinon : AT+CPIN="1234")
# AT+CSQ -> qualité du signal (ex. 22,99)
# AT+COPS? -> opérateur enregistré
# 3) Mode QMI : charger le pilote et monter wwan0
sudo modprobe qmi_wwan
ip -br link | grep wwan
# quectel-CM : outil officiel Quectel (miroirs GitHub), compilé sur la carte
cd quectel-CM && make && sudo ./quectel-CM &
sudo dhclient wwan0
curl -s --interface wwan0 https://ifconfig.me
# 4) NAT WAN(wwan0) vers LAN(eth0)
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wwan0 -j ACCEPT
sudo iptables -A FORWARD -i wwan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Verificación esperada
AT+CSQ devuelve una calidad utilizable (por encima de 15 aproximadamente); wwan0 obtiene una dirección del operador; curl --interface wwan0 muestra la IP pública 4G; una máquina conectada al eth0 del BPI sale a Internet a través de la 4G. Las velocidades siguen siendo las del EC20 y de la señal, no las del GbE local.
Errores frecuentes
- Olvidar las antenas u.FL: sin ellas, el EC20 no encuentra ninguna célula (CSQ 99).
- SIM con código PIN: el módulo permanece bloqueado hasta que AT+CPIN haya respondido.
- Confundir los puertos serie: el AT no está en ttyUSB0 sino típicamente en ttyUSB2.
- No cargar qmi_wwan (o dejar el módulo en un modo no QMI): no aparece ninguna interfaz wwan0.
- No persistir ip_forward ni las reglas de iptables: al reiniciar, el NAT desaparece — escribe un servicio systemd dedicado.
- Creer que el módulo está conectado por PCIe: el EC20 transita por la señal USB 2.0 del conector.
Otros tutoriales para esta placa
- Monter le module BPI-CM4 sur son carrier et réussir le premier boot
- Apprivoiser les LED et la touche ADC du carrier CM4IO
- Mesurer le stockage du BPI-CM4 : eMMC, microSD et le palier NVMe
- Activer I2C, SPI et UART sur le BPI-CM4 : env.txt ou armbianEnv.txt
- Brancher un capteur BME280 sur l'I2C1 du carrier (GPIOX_17/18)
- Déplacer le rootfs sur un SSD NVMe via le port mini-PCIe
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash