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.