Skip to content

rsync for the Kobo

I've recently got an ebook reader - I decided to take a Kobo for a number of ressons:

  • pretty cheap
  • easily hackable (and it seems that they understand Open Source - Most of the software for their devices is on github - https://github.com/kobolabs )
  • no hard vendor lock-in (Well, they do have their kobo-store, but you are not forced to use it.)

First a Warning:

Hacking the firmware of embedded devices always includes the risk to break the device. And it may void Warranty.

If you can't live with that risk don't do it!


And always backup all your data first! If you screw something up you will need to do a factory reset - and this will wipe all data.

Why rsync? For backups - my tool of choice is dirvish. Of course I could connect the Kobo via USB, mount it and do the backup from there, but I prefer the direct way. And I can do a full system backup, not only the data.

Step 1) Getting a root Shell

The Kobo runs on Linux with busybox, so it has a telnet server already installed but not activated. So we don't need additional software for this step, we just need to change a few config files. To do this the update system can be misused - it's pretty simple: Connect via USB and put a KoboRoot.tgz into the .kobo folder. This file will then be extracted to / - without any kind signature checks or similar. Easy to use, but also easy to break stuff.

Some tutorials I found recommend to do a factory reset first, I did not and it just worked fine.

The hardest part is to find the download Url of the firmware package. You could try to run an update on your Kobo and sniff the network or use the (Win only) setup software and have a look what it downloads. Or just trust other people who have already collected the urls - like in this thread @ mobileread.com.

Unzip that and you will find KoboRoot.tgz besides other stuff we don't need now.

From the tar we just need a few files:

tar -xvzf ../KoboRoot.tgz ./etc/init.d/rcS ./etc/inetd.conf ./etc/inittab

In the Package for my device there is no /etc/inittab included, so I had to trust the files I found in the net.

Get inetd to listen on port 23 and run telnet - add to etc/inetd.conf:

23 stream tcp nowait root /bin/busybox telnetd -i

The standard firmware does not mount /dev/pts which is necessary for telnet. I added to etc/init.d/rcS just below the other mount-lines:

mkdir -p /dev/pts
mount -t devpts devpts /dev/pts

And finally we need to make sure inetd gets started. Add to etc/inittab:

::respawn:/usr/sbin/inetd -f /etc/inetd.conf

or like I did just create the etc/inittab

::sysinit:/etc/init.d/rcS
::respawn:/sbin/getty -L ttymxc0 115200 vt100
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::restart:/sbin/init
::respawn:/usr/sbin/inetd -f /etc/inetd.conf

Tar this into a KoboRoot.tgz and put the file into .kobo on your device. After disconnecting USB it will install it and reboot. Turn on Wifi in the settings and start the Browser (it enables Wifi only on demand, starting the browser makes sure it really does) and you should be able to connect via telnet as root without password. The kobo is wide open now, do this only in a secure network.

Step 2) install the dropbear ssh server

So far I'm too lazy to set up a build environment for the Kobo, so I'm using binaries from the debian armhf port. After reading tjms comment I started with Maemo binaries. While they do work for dropbear they fail with rsync, more about that later.

Download the deb from https://packages.debian.org/wheezy/armhf/dropbear/download, unpack it and create a Kobo update package:

mkdir d
cd d
ar x ../dropbear*.deb data.tar.gz
tar xzf data.tar.gz
tar -cvzf ../KoboRoot.tgz usr/{bin,lib,sbin}

Copy the KoboRoot.tgz into .kobo of the reader and let it install and reboot again.

Then connect via telnet to set it up:

# add the private key(s) for the box(es) you want to connect from
mkdir -p /root/.ssh
echo "your key" >> /root/.ssh/authorized_keys

# create host key
mkdir -p /etc/dropbear
cd /etc/dropbear
test -f rsa_host_key || dropbearkey -t rsa -f rsa_host_key
test -f dss_host_key || dropbearkey -t dss -f dss_host_key

# dropbear complains if this is not present
touch /var/log/lastlog

# edit /etc/passwd
vi /etc/passwd

Here we need to disable the login without password and change root's home directory from / to /root.

root:x:0:0:root:/root:/bin/sh

You could also set a password for root, but for me it's fine to have pubkey access only.

In the passwd file there is a second root user "admin" with password "admin". I don't know yet if it's used for something and if it's safe to delete it.

Now we can try dropbear:

/usr/sbin/dropbear -d /etc/dropbear/dss_host_key -r /etc/dropbear/rsa_host_key -F -s -E

Try to login via ssh. Maybe there are some permissions to change.

If this is successful add dropbear to /etc/inittab:

::respawn:/usr/sbin/dropbear -d /etc/dropbear/dss_host_key -r /etc/dropbear/rsa_host_key -F -s

and remove the previously added line for inetd (telnet).

Step 3) rsync

This took me a while since I started with Maemo packages - rsync just did exit 1 without any further notice, strace and LD_DEBUG did not really help, finally derRichard pointed me to the right direction: The Kobo uses EABI5, Maemo EABI4, so everything that needs additional shared libraries will fail.

Download rsync and libpopt from https://packages.debian.org/wheezy/armhf/rsync/download and https://packages.debian.org/wheezy/armhf/libpopt0/download

This time no more need to use the Kobo updater, i just scp it to the device:

ar x rsync_*.deb data.tar.gz
mkdir rsync
cd rsync
tar -xvzf ../data.tar.gz
scp usr/bin/rsync root@kobo:/usr/bin/
cd ..
ar x libpopt0_*.deb data.tar.gz
mkdir libpopt
cd libpopt
tar -xvzf ../data.tar.gz
scp scp lib/libpopt.so.0.0.0 root@kobo:/lib/

and on the Kobo:

cd /lib
ln -s libpopt.so.0.0.0 libpopt.so.0

and rsync works:

[root@(none) ~]# rsync --version 
rsync  version 3.0.9  protocol version 30
Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

some Kobo hacking resources:

IT-Syndikat Year11Party: Don't Panic!

Samstag 24.05.2014 - Einlass 21:00 - Eintritt frei! - @P.M.K.

live: MILLICENT INGRAM (ibk/berlin)

djs: BADSPIN | ..EGO. | ROBELIX

Keep calm and invade the p.m.k

Innsbrucks Hackerspace legt wieder die Lötkolben beiseite, packt seine Blinkendingse, Matekisten und Aluhüte und macht sich auf in die p.m.k

Dort feiert das IT-SYNDIKAT sein 100 jähriges Bestehen. Die DJs BADSPIN, ..EGO. und ROBELIX bringen Crypto in die Party und MILLICENT

INGRAM hauen rein bis dem letzten Vogonen der Kopf platzt. Vergesst eure Handtücher nicht, denn ab Mitternacht ist Towel Day.

Hack Systems! Hack Society! Hack Spaces!

Achtung weihnachtsfreie Zone!

Die ganze Wahrheit über die Weihnachts-Verschwörung

Achtung weihnachtsfreie Zone

1947 stürzte nahe Roswell, NM, USA ein Außerirdischer (der Weihnachtsmann) mit seinem wie ein Rentier-Schlitten aussehendem UFO ab. Nicht nur der Weihnachtsmann überlebte den Absturz, auch das heimtückische Weihnachtsvirus kam dabei auf die Erde.

Die wissenschaftliche Bezeichnung des Virus ist X-MAS.

Eine Infektion hat vor Allem zwei Auswirkungen: Verminderung des kritischen Denkvermögens und eine wissenschaftlich noch völlig unerklärbare Sympathie für Nadelhölzer. Erstere führt oft zu unkontrollierbarem Kaufrausch. Das mag zunächst harmlos erscheinen, es ist aber gerade wegen der subtilen Wirkungen besonders gefährlich.

Der Weihnachtsmann erkannte schnell die Wirkung des Virus auf den Menschen und nutzt seither die verminderte Kritikfähigkeit der Infizierten aus um die Weltherrschaft an sich zu reißen. Als Helfer fand er bald skrupellose Geschäftemacher, die vom Kaufrausch profitieren und damit beträchtliche Geldmittel in das Netzwerk des Weihnachtsmanns fließen lassen. Außerdem helfen sie Ihm auch durch großangelegte Marketing-Kampagnen sein Image aufpolieren. Viele global tätige Unternehmen werden vom Weihnachtsmann kontrolliert!

Auf sogenannten Weihnachtsmärkten werden absichtlich mit X-MAS belastete Getränke verkauft, daß das genau in der Zeit mit nass-kaltem Wetter passiert ist auch ein perfider Teil des Plans. Viele Menschen haben ein geschwächtes Immunsystem, dadurch steigen die Infektionsraten rasant an, in vielen Ländern kann sie beinahe die 100%-Marke erreichen.

Wenn dann ein Großteil der Bevölkerung infiziert ist wird gnadenlos abgezockt. Mit Nadelbäumen, Kitsch, grauenhafter Musik, usw... werden riesige Mengen Geld in die Netzwerke des Weihnachtsmanns geleitet.

Um sein Ziel zu erreichen schreckt der Weihnachtsmann vor nichts zurück! Auch nicht vor Mord! John Lennon musste sterben weil er von "seinem" Guru die Wahrheit erfahren hat! John F. Kennedy mußte sterben, weil er diese Verschwörung nicht bedingungslos unterstützen wollte.

Edward Snowden muß sich in Russland verstecken nachdem er geheime Dokumente der "Nasty Santa Association" veröffentlichte, die die Ausmaße dieses Netzwerkes erahnen lassen.

Selbst Nostradamus hat den "Aufstieg der roten Mächte" schon prophezeit, wurde bisher aber falsch interpretiert.

Einfach mit offenen Augen durch die Stadt gehen, wem die schrecklichen Auswirkungen nicht sofort auffallen der leidet wahrscheinlich schon an einer X-MAS Infektion.

Midibox MB-6582

Schon vor längerer Zeit hat Franky die Teile für 2 MB-6582 angeschleppt. Es handelt sich dabei um Synthesizer für bis zu 8 SID-Chips - den Soundchips aus dem Commodore C64.

Nach etlichen längeren Löt- und Debugsessions gibt es erste sicht- und vor Allem hörbare Ergebnisse.

Hier mal die Sichtaren:

MB-6582 Platine
Am Anfang steht die nackte Platine

MB-6582 Platine teilweise bestückt
ca. 2 Stunden später, trotz der riesigen Menge an Bauteilen geht das reine Bestücken doch recht schnell


MB-6582 Frontpanel kleben
Kleben der Frontpanel-Montageschrauben

MB-6582 Frontpanel
Frontpanel fertig zusammengebaut


MB-6582 LED-Matrix
die LED-Matrix im Detail

MB-6582 zusammengebaut
Es passt alles in's Gehäuse - und das "Ready" ist schon mal ein gutes Zeichen. Es waren aber noch so einige Bugs zu finden - das Volle Programm von kaputten Shiftregistern bis zu einem Fehler der Platine


MB-6582 Testtone
Einen kaputten Transistor in der Ausgangsstufe getauscht - und dann liefert der Testtone auch das gewünschte Ergebnis

MB-6582 First try
Und schließlich ein erster Versuch die Software darauf ein bisschen zu durchblicken. Da habe ich wohl noch viel zu lernen, viel mehr als Krach habe ich damit noch nicht zustande gebracht.

Big Harddisk

Beim Elektronikschrott-ausmisten bin ich über eine große Harddisk gestolpert. Groß im physischem Sinne, nicht von der Kapazität her:

Big HD
Nicht nur die Größe ist beeindruckend, auch das Gewicht
Big HD
Die Unterseite mit der Elektronik

Big HD
Detail der Elektronik - mit nachträglichen Korrekturen
Big HD
Der Deckel ist ab.

Big HD
Challenge accepted.
Big HD
Der Plattenstapel und die Köpfe

Big HD Größenvergleich
Größenvergleich mit der Spindel aus einer normalen 3.5" Disk
Big HD
Magneten mit Spule für die Kopfpositionierung

Das soll eine Harddisk sein? - DAS ist eine Harddisk:

Es geht auch noch größer, so ein Teil habe ich allerdings noch nie in die Finger gekriegt

Chiliblüte

Mit der Capsaicinversorgung sieht es gut aus, die erste Chiliblüte hat mich heute am Balkon begrüßt ;)

Chiliblüte