🛠 Premier script Python sur l'ODROID-C2
Objectifs
Écrire le premier script Python 3 de la carte : interroger le système (nombre de cœurs Cortex-A53, mémoire) et piloter la LED bleue utilisateur via la classe LED du noyau — sans bibliothèque propriétaire, donc compatible Armbian, Arch Linux ARM, DietPi et images vendor.
Matériel
- ODROID-C2 avec une distribution ARMv8 récente (python3 préinstallé)
- Aucun composant externe : la LED bleue est embarquée (c2:blue:alive en mainline, blue:heartbeat sur Arch/vendor)
- Accès terminal : console série uart_AO 115200 8N1 ou SSH
Code complet
#!/usr/bin/env python3
"""sante.py — état système + 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 état in (1, 0) * 3: # 3 clignotements
(led / "brightness").write_text(str(état))
print("LED", "allumee" if état 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.")
Vérification attendue
Le script affiche 4 cœurs, le nom exact de la LED détectée, fait clignoter la LED bleue 3 fois, puis la rend au trigger heartbeat. Sur Armbian le nom est c2:blue:alive, sur Arch/vendor blue:heartbeat : le glob gère les deux.
Erreurs fréquentes
- Écrire dans /sys/class/leds sans sudo : permission refusée (ou config udev dédiée).
- Tenter d'écrire dans brightness pendant un trigger actif : la valeur est ignorée, remettre trigger « none » d'abord.
- Oublier le shebang et chmod +x, puis lancer ./sante.py directement.
- Chercher un /sys/class/leds nommé « led0 » : les noms sont ceux de la DTS, pas des noms génériques.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash