🛠 Deux ports USB 3.0 simultanés : le CM5 fait du stockage rapide, pas sur une carte CM4
Objectifs
Première dans la gamme Compute Module : le CM5 expose 2 ports USB 3.0 SuperSpeed (5 Gb/s simultanés) + 1 port USB 2.0 High-Speed. Les ingénieurs ont recyclé les ports MIPI CAM0/DSI0 du CM4 en paires USB3 — d'où un piège de compatibilité majeur : ces ports ne fonctionnent pas sur une carte mère conçue pour le CM4. Ce tuto : inventorier les vitesses réelles, activer le port USB 2.0 en hôte, et mesurer deux copies simultanées.
Matériel
- 1 × CM5 sur CM5IO Board (2 × USB 3.0 Type-A + 1 × USB 2.0 Type-C esclave)
- 2 × clés ou SSD USB 3.0 alimentés indépendamment de préférence
- Alim 27 W (les SSD tirent sur le budget 5 V/5 A)
sudo apt install -y usbutils smartmontools
Code complet
# 1) Inventaire des vitesses de liaison
lsusb -t | grep -E '5000M|480M|xhci|dwc'
# 2) Activer le port USB 2.0 High-Speed en hôte (contrôleur dwc2)
echo 'dtoverlay=dwc2,dr_mode=host' | sudo tee -a /boot/firmware/config.txt
sudo reboot
# 3) Monter deux SSD et mesurer le débit simultané
sudo mkdir -p /mnt/s1 /mnt/s2
sudo mount /dev/sda1 /mnt/s1 && sudo mount /dev/sdb1 /mnt/s2
( dd if=/dev/zéro of=/mnt/s1/t.bin bs=1M count=2000 oflag=direct status=none & \
dd if=/dev/zéro of=/mnt/s2/t.bin bs=1M count=2000 oflag=direct status=none; wait )
lsusb -t # recontrôler que les deux SSD restent bien en 5000M
Vérification attendue
lsusb -t liste les deux SSD sur des bus 5000M (et le clavier éventuel en 480M sur le contrôleur dwc2) ; les deux copies dd aboutissent sans erreur UAS ; le total approche les capacités des deux liens SuperSpeed simultanés. Le port USB 2.0 Type-C devient utilisable en hôte après l'overlay dwc2.
Erreurs fréquentes
- Brancher les périphériques USB3 sur une carte mère CM4 : la datasheet est explicite, l'USB 3.0 « ne fonctionnera pas quand un CM5 est branché sur une carte conçue pour le CM4 » — les paires MIPI n'existent pas côté CM4.
- Vouloir l'OTG USB 2.0 : non documenté officiellement (« certains utilisateurs y sont parvenus ») ; la voie supportée est l'hôte à rôle fixe (lier USB_OTG_ID au niveau bas) avec
dr_mode=host. - Hub non alimenté : deux SSD sur un hub bus-powered font chuter le lien en 480M ou échoueront la monture.
- Chercher 4 ports USB comme sur le Pi 5 : deux ports USB 2.0 du Pi 5 ont été supprimés faute de place de signal — le CM5 a 1 × USB 2.0 + 2 × USB 3.0, pas plus.
Autres tutoriels pour cette carte
- Alimenter un CM5 comme il faut : USB-C PD 5 V / 5 A et bouton d'alimentation
- La première RTC des Compute Modules : câbler et vérifier la VBAT du CM5
- Accès distant sans VPN : enregistrer un CM5 dans Raspberry Pi Connect
- GPIO du CM5 côté RP1 : force de conduite, budget 50 mA et broches pièges
- Refroidir le CM5 : ventilateur PWM sur le connecteur JST-SH et tachymétrie
- Démarrer le CM5 sur un SSD NVMe dans le socket M.2 de la CM5IO
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash