Quelques trucs en rapport avec la liseuse Kobo Touch.
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.
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