pages en rapport: ça donne encore envie avec des kobo <40€ made in china …
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 :
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.
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
Traduction et mise à jour du site Beware of soapy frogs
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
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.
Traduction du site uni.2ch.net
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.
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
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
l'idée est :
2 pistes :
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:
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:
sachant que dans la phase de ré-initialisation la partition rootfs est écrasée par la rescue, on peut:
KOBOL pour Kobo Libre
apt-get install rpm uuid-dev liblzo2-dev
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
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
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
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
tty1::respawn:/sbin/getty 38400 tty1