🛠 Vivre côté Linux : SSH, opkg, Python et routes Lua personnalisées

Arduino Yún · avance · IMG-yun-avance-8-yun-opkg-python-lua-linux.svg — terminal SSH sur la Yún (prompt root@arduino) : commandes opkg install python, ls /usr/lib/lua, éditeur vi ; en arrière-plan la Yún et son stockage interne 32 Mo + slot microSD.

Objetivos

Tratar la Yún como un verdadero mini-servidor embebido: conectarse por SSH, gestionar paquetes con opkg (el gestor de paquetes de OpenWrt), instalar Python y crear una ruta REST personalizada en Lua servida por el demonio RPC — el mismo mecanismo que las rutas oficiales /arduino. Escribirás código que se ejecuta en el AR9331, sin tocar nunca el 32U4.

Material

Sesión completa

# 1) Connexion (mot de passe root par défaut : yun)
ssh root@arduino.local

# 2) Inventaire système
cat /proc/cpuinfo | head -5      # AR9331 MIPS 24Kc
df -h                            # ~32 Mo de flash, dont ~10 Mo utilisables !
free                             # 64 Mo de RAM DDR2

# 3) Gestion de paquets (OpenWrt)
opkg update
opkg list | grep python          # python est gros ; python-light existe
opkg install python-light py-pycurl

# 4) Script Python côté Linux — il peut parler au Bridge via HTTP local
cat > /root/temperature.py << 'EOF'
import urllib.request, time
while True:
    v = urllib.request.urlopen(
        "http://localhost/data/get/pot").read.decode.strip
    print("pot =", v)
    time.sleep(2)
EOF
python /root/temperature.py &

# 5) Route REST personnalisée : /cgi.d... en fait via luci-rpc en Lua
#    Fichier /usr/lib/lua/temperature.lua :
#      module("temperature", package.seeall)
#      function get
#        return { valeur = 42, unite = "degC" }
#      end
#    Exposée par /cgi-bin/rpc.lua/temperature/get (selon la version de Linino OS).

En el lado del 32U4, nada cambia: el sketch y tus scripts Linux coexisten en el mismo Bridge y en el mismo almacén de datos /data — esa es toda la potencia de la arquitectura.

Verificación esperada

opkg -v responde, python -V muestra la versión instalada, tu script Python lee las claves /data publicadas por el sketch (localhost, sin configuración de red). La ruta Lua devuelve JSON en el navegador. Verifica el espacio: df -h antes/después de cada opkg install — esa es LA restricción de la Yún.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales