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.
4.3 KiB
Client Kobo — Monitorink
Affiche le dashboard Monitorink (/image.png) sur une Kobo Libra 2 (FW 4.38.x) déjà
équipée de NickelMenu. Approche : boucle WiFi → fetch image → fbink → suspend rtcwake.
Ces scripts sont un overlay : ils réutilisent les binaires ARM et les helpers WiFi
pré-compilés/éprouvés du projet usetrmnl/trmnl-kobo,
afin de ne pas réinventer (et risquer de casser) la gestion WiFi/suspend spécifique au matériel.
Contenu de ce dossier
monitorink.sh— point d'entrée (lancé par NickelMenu).monitorinkloop.sh— boucle d'affichage (réutilisebin/etscripts/de trmnl-kobo).nm/monitorink— entrée NickelMenu.
Installation (Kobo branchée en USB)
-
Récupérer les binaires + helpers WiFi depuis trmnl-kobo :
git clone https://github.com/usetrmnl/trmnl-koboOn a besoin de
src/TRMNL/bin/(fbink, fbdepth, busybox_kobo) etsrc/TRMNL/scripts/(enable-wifi.sh, disable-wifi.sh, force-wifi-connection.sh, obtain-ip.sh, release-ip.sh, ledToggle.sh, getrssi.sh). -
Construire le dossier Monitorink sur la Kobo, à
/mnt/onboard/.adds/Monitorink/:Monitorink/ monitorink.sh (ce repo) monitorinkloop.sh (ce repo) bin/ (copié depuis trmnl-kobo/src/TRMNL/bin/) scripts/ (copié depuis trmnl-kobo/src/TRMNL/scripts/) -
Entrée NickelMenu : copier
nm/monitorinkdans/mnt/onboard/.adds/nm/monitorink. -
Configurer l'URL dans
monitorink.sh(MONITORINK_URL) et l'intervalle (MONITORINK_REFRESH, en secondes). -
Éjecter proprement la Kobo → l'entrée « Monitorink » apparaît dans NickelMenu.
Utilisation
- Lancer « Monitorink » depuis NickelMenu. La boucle démarre : l'écran se met à jour, puis le device passe en suspend et se réveille à chaque intervalle.
- 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 suspendrtcwake -m mempour économiser la batterie. - Redémarrer / restaurer Nickel : 3 appuis rapides (< 3 s) sur un bouton de page
(frontal).
reboot_watcher.shlit 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 desEV_KEYpropres. reboot_watcher.shtourne en arrière-plan avec une boucle de respawn (il ne reste jamais mort). Calage/debug : lancer avecMONITORINK_PWR_DEBUG=1pour logger chaque évènement (type/code/val), puis repasser à0.
- Pourquoi pas le bouton power directement : sur ce Kobo (mx6sll) le power n'émet que des
scancodes bruts
finger_trace(ancien déclencheur triple-tap tactile) n'est plus utilisé : on peut le retirer debin/fbink/.- Logs :
/tmp/monitorink.log(effacés au reboot).
À valider sur l'appareil (cf. plan, tâche 8)
- Orientation framebuffer : si l'image sort tournée, soit pivoter côté serveur, soit ajouter
./bin/fbdepth -r 2avant l'affichage et-r -1après. - Frontlight :
frontlight_off()écrit 0 dans/sys/class/backlight/*/brightness. Vérifierls /sys/class/backlight/*/brightnesssur l'appareil et ajuster le glob si le nœud diffère. - Stabilité de
rtcwake -m memsur FW 4.38.23171 (sinon le fallbackstate-extendedprend le relais ; en dernier recourssleep). - Cycle WiFi : confirmer qu'au réveil la reconnexion DHCP aboutit en < ~24 s (
has_ipOK). - Boutons (reboot) : sur ce Kobo,
find_button_devretient/dev/input/event3et les boutons de page émettentEV_KEYcodes 193/194 (structinput_event16 o). Sur un autre modèle, recaler viaMONITORINK_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.