🛠 Premier script Python sur l'ODROID-C2
Objetivos
Escribir el primer script Python 3 de la placa: consultar el sistema (número de núcleos Cortex-A53, memoria) y controlar el LED azul de usuario mediante la clase LED del kernel — sin bibliotecas propietarias, por lo tanto compatible con Armbian, Arch Linux ARM, DietPi e imágenes del fabricante.
Material
- ODROID-C2 con una distribución ARMv8 reciente (python3 preinstalado)
- Ningún componente externo: el LED azul está integrado (c2:blue:alive en mainline, blue:heartbeat en Arch/vendor)
- Acceso por terminal: consola serie uart_AO 115200 8N1 o SSH
Código completo
#!/usr/bin/env python3
"""sante.py — etat systeme + LED bleue via /sys/class/leds."""
import os
from pathlib import Path
from glob import glob
print("--- ODROID-C2 (Amlogic S905, quad Cortex-A53) ---")
print("Coeurs CPU :", os.cpu_count)
chemin = next(iter(glob("/sys/class/leds/*blue*")), None)
assert chemin, "LED bleue introuvable"
led = Path(chemin)
print("LED detectee :", led.name)
trig = led / "trigger"
if trig.exists:
print("Trigger actuel :", trig.read_text.strip)
for etat in (1, 0) * 3: # 3 clignotements
(led / "brightness").write_text(str(etat))
print("LED", "allumee" if etat else "eteinte")
import time; time.sleep(0.4)
# retour au rythme cardiaque par defaut
if trig.exists:
trig.write_text("heartbeat")
print("Trigger remis sur heartbeat.")
Verificación esperada
El script muestra 4 núcleos, el nombre exacto del LED detectado, hace parpadear el LED azul 3 veces y luego lo devuelve al trigger heartbeat. En Armbian el nombre es c2:blue:alive, en Arch/vendor blue:heartbeat: el glob gestiona ambos.
Errores frecuentes
- Escribir en /sys/class/leds sin sudo: permiso denegado (o configurar una regla udev dedicada).
- Intentar escribir en brightness mientras hay un trigger activo: el valor se ignora, primero restablece el trigger a « none ».
- Olvidar el shebang y chmod +x, y luego ejecutar ./sante.py directamente.
- Buscar un /sys/class/leds llamado « led0 »: los nombres son los de la DTS, no nombres genéricos.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash