🛠 Premier script Python : santé de la carte

Hardkernel ODROID-XU4 (Samsung Exynos5422) · debutant · Schéma : IMG-odroid-xu4-debutant-3-odroidxu4-premier-script-python.svg — Écran de terminal affichant un script Python listant les 8 cœurs big.LITTLE de l'Exynos5422 et les températures de l'ODROID-XU4

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

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

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels