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