Boot & init
Au démarrage, l'OS charge le noyau depuis la partition FAT32, monte la racine ext4 puis lance les services leukOS via des scripts d'init SysV (BusyBox).
Séquence de démarrage
Les scripts sont exécutés dans l'ordre de leur préfixe numérique :
| Ordre | Script | Rôle |
|---|---|---|
| 1 | S89wireguard | Monte le tunnel WireGuard si wg0.conf est configuré. |
| 2 | S90leukos-node | Démarre le daemon du node (automate local). |
| 3 | S91leukos-ui | Démarre l'IHM Qt sur le framebuffer. |
| 4 | S92leukos-hub | Démarre le service domotic local (si l'image l'inclut). |
Le tunnel WireGuard est initialisé en amont si configuré, puis le node démarre avant l'IHM et avant le hub pour garantir la disponibilité du contrôle matériel.
Firmware Raspberry Pi
config.txt— configure les overlays matériels (écran, I2C, SPI…), la résolution et les options du firmware.cmdline.txt— passe les arguments au noyau (console, racine, etc.).
IHM sur framebuffer
L'IHM Qt s'affiche sans serveur graphique, directement sur le framebuffer :
QT_QPA_PLATFORM=linuxfb
Résolution cible 800 × 480.
Réseau
wpa_supplicant.conf (dans l'overlay) préconfigure le Wi-Fi (country=FR). Adaptez le SSID
et la clé avant de flasher, ou reconfigurez après le premier démarrage.
Stockage des données
Sur la cible, les données persistantes vivent sous /var/lib/leukos :
| Fichier | Contenu |
|---|---|
/var/lib/leukos/node.db | État des relais, compteurs, et synchro desired/reported (sync_state). |
/var/lib/leukos/hub.db | Données du service domotic local (si activé sur le node). |
/var/lib/leukos/auth.db | Auth locale du service domotic (si activé). |
La supervision centralisée de parc utilise un stockage séparé côté central :
- PostgreSQL pour auth + inventaire nodes,
- Elasticsearch pour logs nodes, exposé via l'API logs Python (
central-mercure).
Broker MQTT
Mosquitto est lancé au démarrage et fournit le bus 127.0.0.1:1883 consommé par le daemon
et le bridge du hub.