====== La Page sur la Liseuse KOBO ====== pages en rapport: ça donne encore envie avec des kobo <40€ made in china ... * https://sites.google.com/site/gibekm/hardware/kobo/kobo-as-tablet ====== Ancien mais encore utile ====== ===== Bidouiller la Kobo Touch ===== Ces hacks, largement inspiré des liens ci-dessous, a été testé sur une liseuse Kobo Touch avec le firmware 2.0.0. :!: Avant toute chose, faites une sauvegarde du système ! Il existe deux moyens de modifier le système de fichier : - Ouvrir la Kobo, sortir la carte miniSD et la connecter à un ordinateur. Il y a 3 partitions : recoveryfs, rootfs et KOBOeReader - Créer une archive KoboRoot.tgz et la copier dans KOBOeReader/.kobo en connectant la Kobo avec le câble Cette dernière astuce a été décrite sur le site [[http://www.chauveau-central.net/pub/KoboTouch/|Chauveau central]]. Le principe est que s'il existe une archive KoboRoot.tgz au démarrage de la Kobo, celle-ci est décompressée à la racine du système. ===== Enregistrer la Kobo sans passer sur le site officiel ===== Cette faille sera corrigé prochainement ; il faudra alors trouver une autre solution ! Traduction directe du blog d'[[http://a3nm.net/blog/fnacbook_kobo_hacking.html|Antoine Amarilli]], où vous trouverez plus de détails. Avec sqlite, il suffit d'entrer un enregistrement : echo "insert into user values('foo', 'foo', 'foo', 'foo', 'foo');" | sqlite3 /mnt/kobo/.kobo/KoboReader.sqlite ===== Installer telnet et ftp sur Kobo ===== Traduction et mise à jour du site [[http://blog.ringerc.id.au/2011/01/enabling-telnet-and-ftp-access-to-kobo.html|Beware of soapy frogs]] ==== Si vous travaillez directement sur le répertoire etc ==== Modifiez le fichier etc/inittab en y ajoutant ces deux lignes : ::sysinit:/etc/init.d/rcS2 ::respawn:/usr/sbin/inetd -f /etc/inetd.conf Créez le fichier etc/init.d/rcS2 : #!/bin/sh mkdir -p /dev/pts && mount -t devpts devpts /dev/pts && /usr/sbin/inetd /etc/inetd.conf && Modifiez les permissions du fichier pour le rendre exécutable : chmod a+x /etc/init.d/rcS2 Créez le fichier /etc/inetd.conf # service_name sock_type proto flags user server_path args 21 stream tcp nowait root /bin/busybox ftpd -w -S / 23 stream tcp nowait root /bin/busybox telnetd -i ==== Si vous travaillez avec une connection câblée ==== Créez les fichiers décrits plus haut et les mettre dans une archive. Vous pouvez copier-coller ce code dans un terminal : mkdir etc cd etc echo "# This is run first except when booting in single-user mode." > inittab echo "::sysinit:/etc/init.d/rcS" >> inittab echo "::sysinit:/etc/init.d/rcS2" >> inittab echo "::respawn:/usr/sbin/inetd -f /etc/inetd.conf" >> inittab echo "::respawn:/sbin/getty -L ttymxc0 115200 vt100" >> inittab echo "::ctrlaltdel:/sbin/reboot" >> inittab echo "::shutdown:/bin/umount -a -r" >> inittab echo "::restart:/sbin/init" >> inittab echo "# service_name sock_type proto flags user server_path args" > inetd.conf echo "21 stream tcp nowait root /bin/busybox ftpd -w -S /" >> inetd.conf echo "23 stream tcp nowait root /bin/busybox telnetd -i" >> inetd.conf mkdir init.d cd init.d echo "#!/bin/sh" > rcS2 echo "mkdir -p /dev/pts &&" >> rcS2 echo "mount -t devpts devpts /dev/pts &&" >> rcS2 echo "/usr/sbin/inetd /etc/inetd.conf &&" >> rcS2 chmod a+x rcS2 cd ../.. tar czf KoboRoot.tgz etc Ensuite, copiez ce fichier KoboRoot.tgz dans KOBOeReader/.kobo, débranchez la Kobo, redémarrez-la, et voilà ! Il reste à connaître l'adresse IP. Cette commande sur le réseau local permet de savoir quelles sont les adresses IP connectées (il faut savoir quelles sont les autres adresses du réseau !) : nmap -sP 192.168.1.1-254 Enfin : telnet IP_de_la_kobo le login est root. Pour le FTP, le login et le mot de passe et le login sont root. ==== Installer SSH avec dropbear ==== Traduction du site [[http://uni.2ch.net/test/read.cgi/ebooks/1342916042/64|uni.2ch.net]] == La partie avec la connexion câblée == Télécharger l'archive suivante [[http://repository.maemo.org/extras/pool/diablo/free/d/dropbear/dropbear_0.52-2_armel.deb|Dropbear serveur/client ssh]], puis décompresser le dans un répertoire, ensuite regarder les si tout a bien été décompresser faite : $ ls etc usr Ensuite créer un répertoire root dans le même dossier, où vous avez /etc et /usr , dans le dossier /root créer faite : $ mkdir -p root/.ssh $ ssh-keygen -y -f ~/.ssh/id_rsa > root/.ssh/authorized_keys $ tar czf KoboRoot.tgz usr/{bin,lib,sbin} root Ensuite connecté votre kobo a votre ordinateur pour avoir accès à la partition vfat dans la quelle vous placé le fichier KoboRoot.tgz dans le dossier /.kobo , pour que la kobo puisse se mettre à jour. Une fois que votre kobo a redémarrer, connecter vous en telnet a votre kobo, puis faite : $ mkdir -p /etc/dropbear/ $ cd /etc/dropbear/ $ dropbearkey -t rsa -f rsa_host_key $ dropbearkey -t dss -f dss_host_key $ echo '::respawn:/usr/sbin/dropbear -d /etc/dropbear/dss_host_key -r /etc/dropbear/rsa_host_key -F -s' >> /etc/inittab $ cp /etc/passwd /mnt/onboard/passwd.backup $ sed -i 's/^root::/root:*:/' /etc/passwd $ chown -R root:root /root $ chmod 700 /root $ chmod 700 /root/.ssh $ chmod 600 /root/.ssh/authorized_keys $ sync;sync;sync $ reboot Le login est root et le password root. Et voila vous devriez avoir un accès ssh a votre kobo. ===== des liens glannés ===== * http://a3nm.net/blog/fnacbook_kobo_hacking.html ssh sur kobo * http://blog.slucas.fr/blog/kobo-ereader-touch-5 * http://blog.ringerc.id.au/2011/01/enabling-telnet-and-ftp-access-to-kobo.html * http://blog.ringerc.id.au/2011/01/preparing-development-environment-for.html un SDK :-) * http://blog.ringerc.id.au/2011/01/compiling-qt-plugins-for-kobo-wifi.html * http://blog.ringerc.id.au/2011/01/setting-up-usb-gadget-serial-gserial-on.html * http://blog.slucas.fr/blog/kobo-ereader-touch-17 * http://www.mobileread.com/forums/showthread.php?t=165359 * https://github.com/kobolabs/Kobo-Reader * http://www.chauveau-central.net/pub/KoboTouch/ * http://wiki.mobileread.com/wiki/Kobo_Touch_Hacking * http://maemo.org/packages/ * http://ccoffing.net/tech/embedded/kobo/ * http://robmyers.org/2013/06/17/building-the-kobo-reader-sources/ ===== Cross Compilation ===== http://www.friendlyarm.net/downloads arm-linux-gnueabi-gcc est le compilateur et pas arm-linux-gcc , il faut changer ca dans le fichier build/build-config.sh installer aussi libglib2.0-dev ==== Compilation du noyo ==== Un merci à clc alum mit edu http://ccoffing.net/tech/proj/ocherbook/ https://github.com/ccoffing/OcherBook le gcc arm gnu-eabi etant deja en place , cf [rasberry:la_page_rasberry_pi] Recuperer les sources de KoboLabs: de https://github.com/kobolabs/Kobo-Reader git clone https://github.com/ccoffing/OcherBook.git # recup du noyo de la kobo bonne version git clone git://github.com/kobolabs/Kobo-Reader.git koboreader cd OcherBook tar xvfz ../koboreader/hw/imx508/ntx/linux-2.6.35.3.tar.gz cd linux-2.6.35.3 # recup du .config precedement telechargé , celui present dans /proc/config.gz si on boot sur une SD kobo cp config.txt .config make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig #faire les modif puis make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k -j1 # modules mkdir ../modules make modules_install ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- INSTALL_MOD_PATH=../modules/ ... # tout ceci etant un peu approximatif :( #lala lala lala ==== Piste pour un système complet sur la SD ==== l'idée est : * de ne plus avoir de limitation pour poser nos programmes * pouvoir compiler directement sur la kobo * avoir un gestionaire de paquet qui prenne des binaires ARM V7 ou 7a d'Ångström en attendant le notre ? 2 pistes : - modifier la SD et donc le système Kobo - en faire une completement === Piste 1 - En modifiant la SD KOBO === On commence par copier le root_fs en l'épurant On pose un programme de gestion de paquet ipkg ? un gcc , faire attention a la différence eglibc et glibc ? De ce que j'ai compris: * u-boot charge les parametres du .mmc ,le u-boot mmc contient : baudrate=115200 loadaddr=0x70800000 uboot=u-boot.bin kernel=uImage bootcmd_mmc=run bootargs_base bootargs_mmc;load_ntxkernel; bootm bootcmd_SD=run bootargs_base bootargs_SD;load_ntxkernel; bootm bootcmd_recovery=run bootargs_base bootargs_recovery;load_ntxkernel; bootm verify=no bootcmd=run bootcmd_mmc bootargs_recovery=setenv bootargs ${bootargs} root=/dev/mmcblk0p2 rootfstype=ext4 bootargs_mmc=setenv bootargs ${bootargs} root=/dev/mmcblk0p1 rootfstype=ext4 bootargs_SD=setenv bootargs ${bootargs} root=/dev/mmcblk1p1 rootfstype=ext4 bootargs_base=setenv bootargs console=ttymxc0,115200 rootwait rw quiet lpj=3997696 stdin=serial stdout=serial stderr=serial bootdelay=0 #/proc/cmdline console=ttymxc0,115200 rootwait rw quiet lpj=3997696 root=/dev/mmcblk0p1 rootfstype=ext4 hwcfg_p=0x7ffffe00 hwcfg_sz=512 waveform_p=0x7ff00800 waveform_sz=1046016 mem=255M la procedure de mise a jour indique dd if=/upgrade/imx508/u-boot.bin of=/dev/mmcblk0 bs=1K seek=1 skip=1 dd if=/upgrade/imx508/uImage of=/dev/mmcblk0 bs=512 seek=2048 # dans le cas d'un .Koboroot present dd if=/mnt/onboard/.kobo/upgrade/u-boot.bin of=/dev/mmcblk0 bs=1K seek=1 skip=1 dd if=/mnt/onboard/.kobo/upgrade/uImage of=/dev/mmcblk0 bs=512 seek=2048 donc pour faire des tests on peut deposer le u-boot et le uImage sur la SD avec cette maniere en conciderant que cette manip n'est valable que si on est sur la SD ! il fau booter sur la SD pour acceder correctement a /dev/mmcblk0 vu de l'exterieur SD connectee a un lecteur sur un PC, **il faut conciderer la SD comme un disque**, ce qui est le cas pour la plupart des tablettes ou liseuses. donc la SD est constituee d'un MBR de 512 (1FE) jusqu'au 55H:AAH qui le termine et des 3 partitions . on peu faire un dd vers la bonne adresse, l'editeur hexa montre : 0x400 (1024 char) a condition de sauvegarder le debut: script pour mettre a jour le u-boot directement sur une SD KOBOL /dev/sdc #sauvegarde du MBR dd if=/dev/sdc of=debut-SD.dd bs=1 count=1024 # dd if=u-boot.bin of=/dev/sdc bs=1 dd if=debut-SD.dd of=/dev/sdc bs=1 count=1024 # kernel qui a ete deplace aussi dans nos sources... dd if=uImage of=/dev/sdb bs=1 skip=220000 Des sources de u-boot-2009.08/board/freescale/mx50_rdp la SD est partitionnée comme cela: - /dev/mmcblk0p1 partition root rootfs (environ 256Mo) - /dev/mmcblk0p2 partition de secours rescue (environ 256Mo) - /dev/mmcblk0p3 partition user KoboReader (environ 1.4Go) livres et configuration sachant que dans la phase de ré-initialisation la partition rootfs est écrasée par la rescue, on peut: - modifier sur la rescue /etc/init.d/rcS pour qu'il ne formate pas rootfs ni la fat - agrandir rootfs pour y mettre ce qu'on veut, le systeme de developpement par exemple - utiliser une SD de 4Gb avec aussi une fat - mettre tous les modules dans /lib/modules/... - installer udevd binutils et autres paquets qui sembles necessaire === Piste 2 - Fabriquer un système KOBOL sur la SD === KOBOL pour Kobo Libre 8-) * Récupération des sources chez Freescale : http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX508&fpsp=1&tab=Design_Tools_Tab dans le : L2.6.35_10.11.01_ER_source_bundle.tar.gz * décompressions , kernel,patch,doc,SDK ( outil : ltib ) * le .config {{:kobo:config.txt|}} * application des patchs, par leur deplacement dans le repertoire /opt/freescale/pkgs * 1er lancement de ltib et configuration * installation de truc manquant pour nous apt-get install rpm uuid-dev liblzo2-dev * ... plein de trucs ,je tenterais de detailler plus tard :( * 2eme lancement , le bon , il fabrique un kernel et un rootfs ( 6h ...), u-boot devra etre configurer correctement on reprend la structure de la SD Kobo pour prendre les parametres u-boot d'origine , qui sont eux adaptés ... on doit reprendre ltib pour verifier si les drivers de l'ecran sont la , du tactil aussi ( qui a l'air de n'etre qu'une partie normale vue par xorg ) Un outil pour comparer efficacement le diff graphique : apt-get install fldiff Doc : preparer u-boot : https://community.freescale.com/docs/DOC-1310 JE SUIS LALALALALA ==== Vrac en vrac ==== a modifier !! faire une partition fat de 16Mo laissant 5 Mo devant faire une ext4 du reste Un petit bout de code pour la carte: # si la carte est /dev/sdc !!! ATTENTION # efface tout dd if=/dev/zero of=/dev/sdc bs=1M #use full card size with first partition # passer par gparted ;) fdisk -H255 -S63 /dev/sdc << !! u n p 64620 +16M n p 2 97029 w !! #manually eject it now so kernel updates with partition #format it, in this case ext4 mkfs.ext4 /dev/sdd1 #stop wasting reserved space tune2fs /dev/sdd1 -m0 -O sparse_super -L "8Gb KOBO" #turn journal off as flash tune2fs -O ^has_journal /dev/sdd1 sinon un script ===== Autres trucs ===== une debian sur kobo : http://www.mobileread.com/forums/showthread.php?t=222123 ---- mettre le kernel a jour https://github.com/kobolabs/Kobo-Reader/blob/master/documentation/README.kernel Des paquets arm sur [[http://www.angstrom-distribution.org/repo/]] la base sur le imx508 chez Freescale : http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX508&fpsp=1&tab=Design_Tools_Tab OpenWebOS a regarder : https://github.com/openwebos/build-webos l'application pour le KOBO sous linux : Kobo Desktop from here: http://dl.dropbox.com/u/2183775/kobo-desktop.deb \\pensez avant à installer libzip1 libpng3 OS : http://openinkpot.org/ Câble adaptateur micro USB OTG HOST http://www.amazon.com/SANOXY-Micro-Male-Female-Adapter/dp/B0027YYMU6 http://www.pandawill.com/usb-2-0-female-to-micro-usb-male-adapter-converter.html ===== liens e-link ===== * http://elinux.org/BeagleEPD beagleboard et e-link tty1::respawn:/sbin/getty 38400 tty1