Reboot Kobo: 3 appuis bouton de page (evdev EV_KEY) au lieu du triple-tap tactile

L'ancien triple-tap via finger_trace dessinait des points noirs (outil de demo
FBInk), ne respawnait pas (mort definitif si le process tombait) et le tactile ne
reveille pas l'appareil. Le power, lui, n'emet que des scancodes MSC_SCAN parasites
(etat de charge USB). Les boutons de page emettent des EV_KEY propres (codes 193/194).

reboot_watcher.sh: lit l'evdev (FD persistant, pas de perte d'evenements), declenche
sur 3 press EV_KEY < 3 s, boucle de respawn. Plus de finger_trace.

Refresh: full force au (re)demarrage (reset=1 cote client -> oubli de prev_image cote
serveur) pour eviter un refresh partiel pose sur un ecran efface par le reboot.
This commit is contained in:
jerem
2026-06-15 19:38:15 +02:00
parent c7395d1c37
commit 5925b0f9d2
7 changed files with 122 additions and 32 deletions

View File

@@ -65,7 +65,10 @@ http_get() {
fetch_meta() {
# Récupère la ligne "MODE X Y W H SEQ" du backend (avec batterie + client). Vide si KO.
# Au 1er cycle après un (re)démarrage (FIRST=1), on demande reset=1 : l'écran a été effacé
# par le reboot, on force un full refresh côté serveur pour éviter un partiel sur base erronée.
murl="$META_URL?client=$CLIENT"
[ "${FIRST:-0}" = 1 ] && murl="$murl&reset=1"
q="$(bat_query)"; [ -n "$q" ] && murl="$murl&$q"
http_get "$murl" -
}
@@ -170,6 +173,7 @@ wifi_down() {
# MODE PROD : frontlight éteint, WiFi cyclé (off pendant le suspend), rtcwake mem.
frontlight_off
FIRST=1 # 1er cycle après lancement -> demande un full refresh (reset=1) au backend
while true; do
log "--- itération ---"
frontlight_off # réaffirme après chaque réveil
@@ -195,6 +199,7 @@ while true; do
partial) show_frame partial "$mx" "$my" ;;
*) show_frame full ;; # full ou valeur inattendue -> full refresh sûr
esac
FIRST=0 # meta obtenue : le reset n'a plus lieu d'être pour les cycles suivants
else
log "meta ECHEC"
offline