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

@@ -45,8 +45,19 @@ afin de ne pas réinventer (et risquer de casser) la gestion WiFi/suspend spéci
- **Mode prod** (réglages par défaut) : refresh **5 min** (`MONITORINK_REFRESH=300`),
**rétroéclairage éteint** (frontlight à 0), et **WiFi cyclé** — la radio est rallumée le
temps du fetch puis coupée pendant le suspend `rtcwake -m mem` pour économiser la batterie.
- Un **swipe** sur l'écran réveille le device et force un rafraîchissement.
- Pour **arrêter** : maintenir le bouton power (le device se réveille sous Nickel).
- **Redémarrer / restaurer Nickel** : **3 appuis rapides (< 3 s) sur un bouton de page**
(frontal). `reboot_watcher.sh` lit l'evdev et déclenche un reboot logiciel propre sur 3 press
EV_KEY (codes 193/194). Sur **batterie** le device est en suspend profond et les boutons
frontaux ne le réveillent pas : faire d'abord **un appui power** (réveil), puis les 3 appuis
dans la fenêtre d'éveil. Filet de secours : appui power **long** = reboot matériel.
- Pourquoi pas le bouton power directement : sur ce Kobo (mx6sll) le power n'émet que des
scancodes bruts `MSC_SCAN`, parasités par l'état de charge USB (peu fiable). Les boutons
frontaux émettent des `EV_KEY` propres.
- `reboot_watcher.sh` tourne en arrière-plan avec une boucle de respawn (il ne reste jamais
mort). Calage/debug : lancer avec `MONITORINK_PWR_DEBUG=1` pour logger chaque évènement
(`type/code/val`), puis repasser à `0`.
- `finger_trace` (ancien déclencheur triple-tap tactile) n'est **plus utilisé** : on peut le
retirer de `bin/fbink/`.
- Logs : `/tmp/monitorink.log` (effacés au reboot).
## À valider sur l'appareil (cf. plan, tâche 8)
@@ -57,4 +68,9 @@ afin de ne pas réinventer (et risquer de casser) la gestion WiFi/suspend spéci
- Stabilité de `rtcwake -m mem` sur FW 4.38.23171 (sinon le fallback `state-extended` prend le
relais ; en dernier recours `sleep`).
- Cycle WiFi : confirmer qu'au réveil la reconnexion DHCP aboutit en < ~24 s (`has_ip` OK).
- Boutons (reboot) : sur ce Kobo, `find_button_dev` retient `/dev/input/event3` et les boutons
de page émettent `EV_KEY` codes 193/194 (struct `input_event` 16 o). Sur un autre modèle,
recaler via `MONITORINK_PWR_DEBUG=1` (codes/format dans le log). **Sur batterie**, vérifier
le geste réveil-power → 3 appuis frontaux dans la fenêtre d'éveil (les frontaux ne réveillent
pas du suspend).
- Autonomie réelle sur 24 h.