Outils pour utilisateurs

Outils du site


kobo:la_page_kobo

La Page sur la Liseuse KOBO

pages en rapport: ça donne encore envie avec des kobo <40€ made in china …

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 :

  1. Ouvrir la Kobo, sortir la carte miniSD et la connecter à un ordinateur. Il y a 3 partitions : recoveryfs, rootfs et KOBOeReader
  2. 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 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'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 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 uni.2ch.net

La partie avec la connexion câblée

Télécharger l'archive suivante 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

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 <at> alum <dot> mit <dot> 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 :

  1. modifier la SD et donc le système Kobo
  2. 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:

  1. /dev/mmcblk0p1 partition root rootfs (environ 256Mo)
  2. /dev/mmcblk0p2 partition de secours rescue (environ 256Mo)
  3. /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:

  1. modifier sur la rescue /etc/init.d/rcS pour qu'il ne formate pas rootfs ni la fat
  2. agrandir rootfs pour y mettre ce qu'on veut, le systeme de developpement par exemple
  3. utiliser une SD de 4Gb avec aussi une fat
  4. mettre tous les modules dans /lib/modules/…
  5. 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 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

tty1::respawn:/sbin/getty 38400 tty1

kobo/la_page_kobo.txt · Dernière modification: 2017/04/11 15:13 (modification externe)