====== 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