====== zugriff via serielle konsole ====== TODO jemand bei dem screen nicht kaputt ist AFAIR: Schnittstelleneinstellungen: 115200 8N1 login: root pw: kein pw (als regex: "^$") ====== wlan automatisch anschalten ====== Normalerweise steht das wlan im kobo unter kontrolle der Userspache-Applikation (nickel). Erfreulicherweise ist dies aber einfach zu umgehen: /etc/wpa_supplicant_wpa_supplicant.conf vorbereiten (z.B. via wpa_passphrase ssid passwd ) network={ ssid="donotuse" psk=wahnsinnigsicher } In /etc/init.d/rcS: Kernelmodul laden,ifup.dhcp,wissenschon: insmod /drivers/ntx508/wifi/sdio_wifi_pwr.ko insmod /drivers/ntx508/wifi/dhd.ko sleep 2 ifconfig eth0 up wlarm_le -i eth0 up wpa_supplicant -s -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -C /var/run/wpa_supplicant -B sleep 2 udhcpc -S -i eth0 -s /etc/udhcpc.d/default.script -t15 -T10 -A3 -f -q Da jetzt eigentlich kein grund mehr für die Userspace app besteht kann diese auch abgedreht werden: #/usr/local/Kobo/hindenburg & #/usr/local/Kobo/nickel -qws -skipFontLoad & ====== dropbear installiert und gestartet ====== Für erste gehversuche kann relativ einfach telnet eingeschaltet werden: In /etc/init.d/rcS #mkdir -p /dev/pts #mount -t devpts devpts /dev/pts #/usr/sbin/inetd /etc/inetd.conf.mini /etc/inetd.conf.mini 23 stream tcp nowait root /bin/busybox telnetd -i Ist natürlich unbefriedigend, zumal drobear ähnlich einfach zu installieren ist: Von http://maemo.org/packages/view/dropbear/ die "Diablo Extras free armel" beschaffen. Das .deb entpacken mit ar vx dropbear_0.52-2_armel.deb tar xvzf data.tar.gz Gestartet wird dropbear via /etc/init.d/rcS test ! -r /etc/dropbear/dropbear_rsa_host_key && /usr/bin/dropbearkey -t rsa -s 2048 -f /etc/dropbear/dropbear_rsa_host_key /etc/init.d/dropbear start ====== Bilder anzeigen mit pickel ====== Die Bilder sind 800x600 Pixel Gross in Graustufen (16?) In Gimp ein ensprechendes Bild alegen als png speichern und mit ffmpeg konvertieren: ffmpeg -v quiet -vcodec png -i test.png -vcodec rawvideo -f rawvideo -pix_fmt rgb565 test.raw Anzeigen mit cat test.raw | /usr/local/Kobo/pickel showpic {{:projekte:kobo_hacking:test.raw.gz|}} ====== Zeug direkt installieren (update method) ====== Untested (tm) In /etc/init.d/rcS kann man sehr schön sehen dass der Kobo wenn er /mnt/onboard/.kobo/KoboRoot.tgz vorfindet dises nach / entpackt wird. /mnt/onboard/ ist das vfat filesystem. Kann man es also übers herz bringen der Userspace-Applikation eine e-mail-addresse zu geben dann kann man den Kobo nach der "installation" als USB-HDD anschliessen (USB Host modus wird von Nickel verwaltet). Dann ein entsprechendes KoboRoot.tgz in .kobo bunkern und rebooten. ====== Kernel ====== Funktioniert zwar noch nicht, aber immerhin... In den ersten unformatierten 10MB der SD-Karte liegen einige Daten. Unter Anderem der Kernel: MMC read: dev # 2, block # 2048, count 8192 partition # 0 ... 8192 blocks read: OK ## Booting kernel from Legacy Image at 70800000 ... Image Name: Linux-3.11.0 Created: 2013-10-03 19:33:05 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2082832 Bytes = 2 MB Load Address: 70800000 Entry Point: 70800000 XIP Kernel Image ... OK OK Man kann den Original-Kernel z.B. mit dd sichern: moritz@major-tom:~$ dd if=/dev/mmcblk0 of=projects/kobo/kernel.img skip=1048576 count=1926120 bs=1 moritz@major-tom:~$ file projects/kobo/kernel.img projects/kobo/kernel.img: u-boot legacy uImage, r6495_#617 Apr 22 11:07:47, Linux/ARM, OS Kernel Image (Not compressed), 1926120 bytes, Mon Apr 22 05:07:52 2013, Load Address: 0x70008000, Entry Point: 0x70008000, Header CRC: 0xD500E667, Data CRC: 0xE36D4BA3 Freundlicherweise haben die Entwickler {{:projekte:kobo_hacking:config.txt|/proc/config.gz}} in den Kernel eingebaut. Das kann man auch in aktuellere Kernel-Sourcen hineinwerfen: root@jim-beam:/usr/local/src/kobo/linux-3.11# cp /tmp/config.txt .config root@jim-beam:/usr/local/src/kobo/linux-3.11# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig root@jim-beam:/usr/local/src/kobo/linux-3.11# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 root@jim-beam:/usr/local/src/kobo/linux-3.11# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=modules modules_install root@jim-beam:/usr/local/src/kobo/linux-3.11# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- LOADADDR=0x70800000 uImage root@jim-beam:/usr/local/src/kobo/linux-3.11# cd modules root@jim-beam:/usr/local/src/kobo/linux-3.11/modules# tar czf ../modules-3.11.tar.gz . Das uImage kann dann mit dd wieder auf die SD-Karte schreiben. Und davon booten: U-Boot 2009.08-dirty-svn (11月 20 2012 - 16:46:21) CPU: Freescale i.MX50 family 1.1V at 800 MHz mx50 pll1: 800MHz mx50 pll2: 400MHz mx50 pll3: 216MHz ipg clock : 66666666Hz ipg per clock : 66666666Hz uart clock : 24000000Hz ahb clock : 133333333Hz axi_a clock : 400000000Hz axi_b clock : 200000000Hz weim_clock : 100000000Hz ddr clock : 200000000Hz esdhc1 clock : 80000000Hz esdhc2 clock : 80000000Hz esdhc3 clock : 80000000Hz esdhc4 clock : 80000000Hz Board: MX50 RDP board Boot Reason: [POR] Boot Device: SD I2C: ready DRAM: 256 MB MMC: FSL_ESDHC: 0, FSL_ESDHC: 1, FSL_ESDHC: 2 In: serial Out: serial Err: serial [_get_sd_number] g_sd_number:2 MMC read: dev # 2, block # 1023, count 1 partition # 0 ... 1 blocks read: OK MMC read: dev # 2, block # 1024, count 1 partition # 0 ... 1 blocks read: OK zforce read 7 0 (2 bytes) zforce read 1 0 (2 bytes) zforce read 2 0 (2 bytes) zforce read 3 0 (2 bytes) zforce frame start not found ! zforce frame start not found ! PCB ID is 9 Power key released!! ram p=70000000,size=268435456 MMC read: dev # 2, block # 18431, count 1 partition # 0 ... 1 blocks read: OK no "logo" bin header MMC read: dev # 2, block # 14335, count 1 partition # 0 ... 1 blocks read: OK MMC read: dev # 2, block # 14336, count 1868 partition # 0 ... 1868 blocks read: OK Kernel RAM visiable size=255M->255M init TPS65185 power ... Hit any key to stop autoboot: 0 MMC read: dev # 2, block # 2047, count 1 partition # 0 ... 1 blocks read: OK no kernel image signature ! MMC read: dev # 2, block # 2048, count 8192 partition # 0 ... 8192 blocks read: OK ## Booting kernel from Legacy Image at 70800000 ... Image Name: Linux-3.11.0 Created: 2013-10-03 19:33:05 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2082832 Bytes = 2 MB Load Address: 70800000 Entry Point: 70800000 XIP Kernel Image ... OK OK Starting kernel ... Hier bleibt das System hängen ... aber hey - er hat schon einmal erkannt, dass wir einen Linux-Kernel haben. ====== Beschaffung ===== {{ :projekte:kobo_hacking:20131013124945-img_1422_1.jpg?direct&200|}} 20€ bei Saturn & Mediamarkt Im Zweifelsfall Wonko &&/|| nach ner Quittung zum vorzeigen fragen. ====== Eigene App ====== https://chaos.expert/wonko/obok ====== Links ====== * https://github.com/kobolabs/Kobo-Reader die offiziellen (?) Quellen für die Kobo-Firmware incl. Kernel-Sourcen und Build-Anleitungen. * https://www.spin.de/hp/mrks/blog/id/25273201 * http://a3nm.net/blog/fnacbook_kobo_hacking.html * http://www.mobileread.com/forums/showthread.php?t=141388 * htp://www.chauveau-central.net/pub/KoboTouch/ * http://www.mobileread.com/forums/showthread.php?t=169261 * http://www.mobileread.com/forums/showpost.php?p=1863871&postcount=31 * http://blog.ringerc.id.au/2011/01/enabling-telnet-and-ftp-access-to-kobo.html * http://www.mobileread.com/forums/showthread.php?t=196994 * http://blog.ringerc.id.au/2011/01/preparing-development-environment-for.html * http://wiki.mobileread.com/wiki/Kobo_Mini * http://www.mobileread.com/forums/showthread.php?t=201632