Kobo: mode prod (refresh 5 min, frontlight eteint, WiFi cycle + suspend)
- monitorink.sh: MONITORINK_REFRESH 30 -> 300 (5 min) - monitorinkloop.sh: frontlight_off() (ecrit 0 dans /sys/class/backlight/*), cycle WiFi (wifi_down: release-ip + disable-wifi) autour du fetch, sleep -> suspend_for (rtcwake mem) + repli sleep si la veille echoue (USB) - README: documente les reglages prod
This commit is contained in:
@@ -62,6 +62,14 @@ display() {
|
||||
log "fbink rc=$?"
|
||||
}
|
||||
|
||||
frontlight_off() {
|
||||
# Éteint le rétroéclairage (frontlight). Le nœud sysfs exact dépend du modèle Kobo,
|
||||
# donc on écrit 0 dans tous les contrôleurs présents.
|
||||
for b in /sys/class/backlight/*/brightness; do
|
||||
[ -w "$b" ] && echo 0 > "$b" 2>/dev/null
|
||||
done
|
||||
}
|
||||
|
||||
suspend_for() {
|
||||
# Séquence Kobo éprouvée (trmnl-kobo) : state-extended=1 AVANT rtcwake, puis
|
||||
# suspend manuel (echo mem) si rtcwake n'a pas vraiment suspendu.
|
||||
@@ -77,9 +85,17 @@ suspend_for() {
|
||||
sleep 1; sync; sleep 2
|
||||
m_start=$(date +%s)
|
||||
echo mem > /sys/power/state 2>/dev/null
|
||||
log "echo mem elapsed=$(( $(date +%s) - m_start ))s (≈${secs}=OK, ≈0=Nickel bloque)"
|
||||
log "echo mem elapsed=$(( $(date +%s) - m_start ))s (≈${secs}=OK, ≈0=USB branché/suspend bloqué)"
|
||||
fi
|
||||
echo 0 > /sys/power/state-extended 2>/dev/null
|
||||
# Repli : si rien n'a réellement suspendu (USB branché, etc.), on attend le temps
|
||||
# restant en sleep pour ne pas boucler en continu (martèlement backend + batterie).
|
||||
total=$(( $(date +%s) - start ))
|
||||
if [ "$total" -lt "$secs" ]; then
|
||||
rem=$(( secs - total ))
|
||||
log "suspend incomplet (${total}s) -> sleep ${rem}s"
|
||||
sleep "$rem"
|
||||
fi
|
||||
}
|
||||
|
||||
has_ip() { ip addr show 2>/dev/null | grep -o 'inet [0-9.]*' | grep -qv '127.0'; }
|
||||
@@ -97,15 +113,22 @@ wifi_up() {
|
||||
return 1
|
||||
}
|
||||
|
||||
# MODE DEV : on garde le WiFi allumé (pas de disable, pas de suspend) -> fiable.
|
||||
# La gestion d'énergie (suspend + cycle WiFi avec env Nickel) sera ajoutée pour la prod.
|
||||
wifi_up
|
||||
log "ip initiale: $(ip addr show 2>/dev/null | grep -o 'inet [0-9.]*' | grep -v '127.0' | head -1)"
|
||||
wifi_down() {
|
||||
# Coupe la radio avant le suspend (helpers trmnl, env Nickel siphonné en amont).
|
||||
./scripts/release-ip.sh >/dev/null 2>&1
|
||||
./scripts/disable-wifi.sh >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# MODE PROD : frontlight éteint, WiFi cyclé (off pendant le suspend), rtcwake mem.
|
||||
frontlight_off
|
||||
|
||||
while true; do
|
||||
log "--- itération ---"
|
||||
frontlight_off # réaffirme après chaque réveil
|
||||
./scripts/ledToggle.sh on 2>/dev/null
|
||||
|
||||
wifi_up
|
||||
|
||||
if fetch; then
|
||||
log "fetch OK ($(wc -c < "$TMP" 2>/dev/null) octets)"
|
||||
display
|
||||
@@ -123,5 +146,6 @@ while true; do
|
||||
fi
|
||||
|
||||
./scripts/ledToggle.sh off 2>/dev/null
|
||||
sleep "$REFRESH"
|
||||
wifi_down # coupe la radio avant le suspend
|
||||
suspend_for "$REFRESH" # rtcwake -m mem, WiFi éteint pendant ~5 min
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user