etat-systeme.sh
Le check-up complet en 30 secondes : noyau, distribution, charge, mémoire, stockage et température du SoC. Premier réflexe en SSH sur la Portenta X8 pour vérifier que l'image Linux tourne dans de bonnes conditions.
Matériel requis
Une Arduino Portenta X8 (module ST STM32MP1 : quad Cortex-A7 Linux + double cœur Cortex-M4 temps réel, 8 Go eMMC, 2 Go LPDDR4, Wi-Fi/BT embarqués, option LTE). Aucun ; un accès SSH ou une console série sur la carte.
Câblage
Rien à câbler. Accès conseillé : SSH par USB-C (routed) ou réseau.
Fonctionnement
Le script empile les lectures sysfs/procfs standard du noyau Linux ; tout est en lecture seule, sans risque pour le système.
Exécution
Côté Linux : accès SSH (USB-C routed ou réseau) sur l'image Portenta Linux, scripts bash/Python. Côté temps réel : Arduino IDE avec le core « Arduino Mbed OS Portenta X8 Boards », cœur M7 applicatif, flash via mboot depuis Linux.
Variantes
Le lancer en cron toutes les heures vers un fichier pour un historique, ou le croiser avec le core Arduino temps réel.
etat-systeme.sh
#!/bin/bash
# Etat general du Linux embarque : noyau, charge, memoire, stockage.
# Aucune dependance.
echo "== Systeme =="
uname -a
cat /etc/os-release 2>/dev/null | head -3
echo
echo "== Charge et uptime =="
uptime
echo
echo "== Memoire (Mo) =="
free -m | head -3
echo
echo "== Stockage =="
df -h / /home 2>/dev/null | awk 'NR==1 || !seen[$0]++'
echo
echo "== Coeurs =="
nproc
grep -m1 CPU /proc/cpuinfo 2>/dev/null || true
echo
echo "== Temperature (si capteur) =="
for z in /sys/class/thermal/thermal_zone*/temp; do
[ -r "$z" ] && echo "$z : $(( $(cat "$z") / 1000 )) C"
done