🛠 Monter le module BPI-CM4 sur son carrier et réussir le premier boot
Objetivos
El Banana Pi BPI-CM4 no es un nano-ordenador autónomo: es un módulo compute (55 × 40 mm, dos conectores de 100 pines, 4 orificios M2.5) construido sobre el Amlogic A311D (4× Cortex-A73 + 2× Cortex-A53, Mali-G52 MP4, NPU 5 TOPS, 4 GB LPDDR4, 16 GB eMMC). Lo instalará en un carrier compatible con Raspberry Pi CM4, lo alimentará y logrará el primer arranque bajo Armbian — sin caer en la trampa del arranque desde eMMC.
Material
- Módulo Banana Pi BPI-CM4 (4 GB LPDDR4 / 16 GB eMMC)
- Carrier compatible con CM4: se recomienda el BPI-CM4IO (RJ45 GbE RTL8211F, 1× HDMI hasta 4Kp60, 2× USB-A 2.0, USB-C OTG, puerto mini-PCIe + micro-SIM, header de 26 pines, ranura microSD) — los carriers Raspberry Pi CM4 también funcionan (Pin2Pin), pero las funciones dobles (2 HDMI, 2 CSI) no funcionan
- Fuente de alimentación de 5 V / 3 A de calidad (mediciones publicadas: 1,8 W en reposo, 4,1 W a plena carga)
- Tarjeta microSD (la ranura está en el carrier, no en el módulo) + imagen Armbian para la placa bananapicm4io
- Dos antenas u.FL para el WiFi (no incluidas en la caja)
Código completo
# 1) Insérer le module bien perpendiculairement dans les deux connecteurs
# 100 broches du carrier (comme un RPi CM4 : pas de socket, repères silk).
# 2) Sur le PC, flasher Armbian (carte : bananapicm4io, famille meson-g12b)
xzcat Armbian_*_BananaPi-CM4IO_*.img.xz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
# 3) PIÈGE : le ROM Amlogic démarre l'eMMC EN PREMIER. Si l'eMMC contient un
# image bootable (Android 9, vieille image vendor), la SD est ignorée.
# Depuis un système qui boote, effacer l'eMMC :
sudo dd if=/dev/zero of=/dev/mmcblk0 bs=8M status=progress
# (ou « Erase all » avec l'aml-flash-tool / USB Burning Tool côté vendor)
# 4) Premier boot : alimenter en USB-C OTG, HDMI + Ethernet branchés
sudo nmtui # configurer le réseau
uname -a && ip -br link show eth0
Verificación esperada
Pantalla HDMI (hasta 4Kp60), inicio de sesión Armbian creado en el primer arranque, uname -a que muestra un kernel 6.x meson/g12b, eth0 vinculado a 1 Gbit/s (PHY Realtek RTL8211F integrado en el módulo), y el LED azul (GPIOAO_7) en modo heartbeat.
Errores frecuentes
- Creer que el módulo funciona solo: sin carrier, no tiene alimentación, ni HDMI, ni microSD, ni Ethernet.
- Arranque desde SD bloqueado por una eMMC arrancable; una eMMC parcialmente flasheada puede bloquear el arranque en BL2 (recuperación: borrado completo, ver código).
- Fuente de alimentación de 5 V / 2 A insuficiente: reinicios bajo carga.
- Carrier CM4 con doble HDMI o doble cámara: el A311D limita a 1 HDMI, 1 CSI, 1 DSI («PIN limited» según el wiki).
- Olvidar atornillar las antenas u.FL (o dejar la antena PCB) antes de probar el WiFi RTL8822CS.
Otros tutoriales para esta placa
- 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
- Exploiter le NPU 5 TOPS de l'A311D pour l'inférence embarquée
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash