🛠 Premier script Python : santé de la carte
Objectifs
Écrire un premier script Python qui affiche la santé de l'ODROID-XU4 : les 8 cœurs de l'Exynos5422 (4 Cortex-A15 jusqu'à 2,0 GHz + 4 Cortex-A7 jusqu'à 1,4 GHz, big.LITTLE) et les températures des capteurs thermiques exposés par le noyau mainline. Python 3 est préinstallé sur Armbian.
Matériel
- ODROID-XU4 sous Armbian Debian/Ubuntu (kernel 6.6.x), accès terminal ou SSH
- Aucun composant électronique : tout passe par /sys et /proc
Code complet
#!/usr/bin/env python3
"""sante.py — inventaire CPU big.LITTLE + temperatures sur XU4."""
import glob
def lire(chemin):
try:
with open(chemin) as f:
return f.read.strip
except OSError:
return "n/a"
print("== CPUs en ligne ==")
print(lire("/sys/devices/system/cpu/online")) # attendu: 0-7
print("== Frequences max par cluster (kHz) ==")
for p in sorted(glob.glob("/sys/devices/system/cpu/cpufreq/policy*/cpuinfo_max_freq")):
print(p.split("/")[5], lire(p)) # 2000000 (A15) / 1400000 (A7)
print("== Temperatures ==")
for z in sorted(glob.glob("/sys/class/thermal/thermal_zone*")):
t = lire(z + "/type")
v = lire(z + "/temp")
if v != "n/a":
print(f"{t}: {int(v)/1000:.1f} C")
Lancer : python3 sante.py.
Vérification attendue
Le script affiche 0-7 (les 8 cœurs sont exploités en HMP sous mainline), deux politiques de fréquence avec maximums 2000000 kHz (cluster A15) et 1400000 kHz (cluster A7), puis une ligne de température par capteur (cpu0 à cpu3 et gpu).
Erreurs fréquentes
- Lancer avec
pythonau lieu depython3: selon l'image,pythonn'existe pas toujours. - Chercher
/proc/cpuinfo« MHz » par cluster : sous big.LITTLE HMP, mieux vaut lire les policies cpufreq. - Oublier que les températures sont en milli-degrés : il faut diviser par 1000.
- S'inquiéter d'un capteur absent : tous les thermal_zones ne portent pas le même type selon le kernel.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash