🛠 Docker et conteneurs x86 sur la carte
Objectifs
Prouver l'argument de vente de l'Alpha : un vrai écosystème PC portable (la doc officielle cite Docker, Visual Studio et les caméras RealSense) dans 115 × 78 mm. Vous allez installer Docker Engine sous Linux, lancer un conteneur, monter un volume sur le SSD NVMe du socket M.2 M-key (PCIe 4×), et comprendre pourquoi les images ARM d'un Raspberry Pi ne tournent pas ici (et inversement).
Matériel
- LattePanda Alpha sous Linux (Ubuntu ; la doc officielle documente 16.04, les versions récentes bootent pareil via UEFI — support communautaire)
- Stockage : SSD M.2 NVMe fortement conseillé (l'Alpha 800 a 0 Go embarqué ; l'Alpha 864 a 64 Go d'eMMC, un peu justes pour des images)
- 8 Go de RAM LPDDR3 — large pour des conteneurs légers
- Connexion Internet (Ethernet recommandé pour les gros téléchargements d'images)
Code complet
# 1. Installer Docker Engine (dépôt officiel Docker)
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER # puis se reconnecter
# 2. Vérifier l'architecture x86-64 des images
docker version
docker run --rm hello-world
# 3. Conteneur avec volume sur le stockage NVMe
sudo mkdir -p /srv/alpha-data
docker run -d --name webalpha --restart unless-stopped \
-p 8080:80 -v /srv/alpha-data:/usr/share/nginx/html:ro nginx:alpine
# 4. Tester depuis la carte elle-même
echo "<h1>LattePanda Alpha x86</h1>" | sudo tee /srv/alpha-data/index.html
curl -s http://localhost:8080
# 5. Contrôler l'empreinte mémoire/CPU (2 coeurs / 4 threads)
docker stats --no-stream
Vérification attendue
docker run --rm hello-world affiche le message de succès en architecture amd64 ; curl 2 renvoie la page servie par nginx ; docker stats` montre l'empreinte réelle sur les 2 cœurs du m3-7Y30. Comme c'est du x86-64 standard, les mêmes images que sur un PC de bureau tournent sans recompilation.
Erreurs fréquentes
- Essayer des images ARM (celles du Raspberry Pi) : erreur « image architecture arm does not match » — l'Alpha est amd64, il faut les variantes x86.
- Manquer de stockage sur l'Alpha 864 (64 Go d'eMMC partagés avec l'OS) : déplacer le data-root de Docker sur le SSD M.2.
- Oublier de se reconnecter après
usermod -aG docker:permission denied /var/run/docker.sock. - Surcharger les 2 cœurs avec des builds lourds : le TDP de 4,5 W et le refroidissement passif saturent vite — préférer des images allégées (alpine, distroless) et surveiller la température.
Autres tutoriels pour cette carte
- Faire clignoter une LED sur les broches du coprocesseur
- Bouton poussoir et console série avec le coprocesseur
- Premier script Python sur le PC x86 de la carte
- Pont série SoC ↔ MCU : le tunnel x86 vers ATmega32U4
- Lire un capteur analogique du MCU depuis Python (Firmata)
- Wi-Fi 802.11ac et Bluetooth 4.2 depuis le SoC
Exemples de code pour cette carte
clignotante.pyPythonbouton.pyPythonservo.pyPythonanalogique.pyPythonrespiration.pyPythonneopixel.pyPython