🛠 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

Objetivos

Escribir un primer script en Python que muestre el estado del ODROID-XU4: los 8 núcleos del Exynos5422 (4 Cortex-A15 hasta 2,0 GHz + 4 Cortex-A7 hasta 1,4 GHz, big.LITTLE) y las temperaturas de los sensores térmicos expuestos por el kernel mainline. Python 3 viene preinstalado en Armbian.

Material

Código completo

#!/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")

Ejecutar: python3 sante.py.

Verificación esperada

El script muestra 0-7 (los 8 núcleos se explotan en HMP bajo mainline), dos políticas de frecuencia con máximos de 2000000 kHz (cluster A15) y 1400000 kHz (cluster A7), y luego una línea de temperatura por sensor (cpu0 a cpu3 y gpu).

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales