Kobo Touch

Quelques trucs en rapport avec la liseuse Kobo Touch.

Liens interessants

Telnet, ftp, ssh

Référence.

Laisser le wifi actif

Le problème que l'on rencontre lorsqu'on souhaite se connecter au Kobo en wifi est que ce dernier se désactive spontanément au bout de quelques minutes.

Une solution simple est de tuer le programme nickel qui contrôle le wifi : killall nickel. Seulement le Kobo devient inutilisable jusqu'à ce que nickel soit relancé ou que le Kobo soit redémarré (avec la commande reboot).

L'autre solution est de patcher le programme nickel pour qu'il arrête de désactiver automatiquement le wifi. Le fichier intéressant est le fichier /usr/local/Kobo/liblibnickel.so.1.0.0. La fonction qui se charge de désactiver le wifi est la fonction WirelessWatchdog::attemptToKill(void). Voici le code désassemblé donné par IDA :

L'instruction BL loc_3D42F4 renvoie vers la fonction WirelessManager::off(bool), exactement ce que l'on ne veut pas ! Il suffit de supprimer cet appel de fonction en le remplaçant par des NOP (en ARM c'est 0x00000000). On ouvre donc le fichier dans un éditeur hexadécimal et à l'adresse 0x0178B844 on remplace AA 22 B1 EB par 00 00 00 00.

Bien sûr, selon la version du fichier, l'adresse à modifier peut varier. La somme sha1 du fichier que j'ai modifié de cette manière est : 60cdf6d96c7e05af06360b480517eba23dc09f82 (version 2.3.1). D'après les quelques tests que j'ai pu faire, cette modification semble fonctionner sans effet secondaire notable.

Connexion réseau USB

Référence
Ajouter au fichier /usr/local/Kobo/udev/plug les lignes suivantes :

/bin/busybox insmod /drivers/freescale/usb/gadget/arcotg_udc.ko
/bin/busybox insmod /drivers/freescale/usb/gadget/g_ether.ko
ifconfig usb0 192.168.2.2

Le fichier g_ether.ko n'est pas forcément fourni pour le processeur freescale. Il est disponnible ici. Si le commentaire disparait, il est aussi ici.

Lorsque le kobo est branché à l'ordinateur, l'interface réseau usb0 est créée. Il faut la configurer avec l'adresse 192.168.2.1. Le Kobo est accessible à l'adresse 192.168.2.2