September 10, 2012 by damaru. Average Reading Time: about 6 minutes.
I am happy to announce that this article got publish in Hacker montly
We left our little studio in the Kootenays last July to travel throughout Europe, traveling to discover about new media, spiritual centers, art, design and open source initiative. I decided to go really minimal on the computer gear stuff, so I only packed my Kindle, a camera, an android phone and of course my Raspberry Pi !
The KindleBerry Pi!
The Raspberry pi. although a beautiful project and quite an electronic feat, it can be a bit limiting as a main production machine, but I convinced myself I could use it as my main traveling computer.
The plan was, using a Kindle as a screen, connecting it to the processing power of the Raspberry Pi while using an external keyboard to work comfortably. Since connecting an external keyboard to the Kindle seemed impossible at that point, I needed to use the Raspberry Pi as the ‘hub’. The tinkering started and the KindleBerry Pi was soon to be born.
Although I ended up buying a laptop while traveling, all that dreaming and tinkering ended up working nicely, creating a really portable development platform. At the least it has become a proof of concept that could be used for other similar projects. So here is how you can create your very own KindleBerry Pi!
Lets get started
What you will need to do this hack:
- a Kindle 3 ( 1 or two, if you end up breaking the first one)
- a Raspberry Pi
- 2 micro usb to usb cables (one for power and one to connect the Kindle to the Raspberry Pi)
- One keyboard connected to the Raspberry pi
- Optional are a kindle stand (you can use an old audio tape box)
- Optional again is a usb hub since the KindleBerry pi has both port in use when assembled
Hacking the Kindle
DISCLAIMER – you can brick (render unusable) your Kindle doing so, these are just pointers and I take no responsibility whatever you do with your kindle, or your life…
The first part, connecting the Kindle to the Raspberry Pi is simple enough. Jail break the Kindle. install a terminal emulator like this one and then install UsbNetwork. Make sure the usbNetwork is enable, Connect the devices trough USB, do a quick ifconfig usb0 192.168.2.1 and Voila, I can login into the Raspberry Pi with no problem, using the great display of the Kindle but sadly
also using it’s limiting keyboard.
The main challenge now is to use the keyboard connected to the Rasberry Pi instead of the Kindle’s. This is where the magic of gnu screen comes in play! Screen is a terminal multiplexer, if you don’t know what a terminal is, well, I am not sure why you are reading this article in the first place, but let say ‘screen is a terminal on steroid’. One of the nice function of screen is that you can be multiple user on the same ‘screen’ session, for lets say you want to monitor what people do when they connect to your computer trough ssh, or if you want to… well… screencast in a terminal environment (whatever enjoyment that would give you). Anyhow, I am not sure why there is a multiuser mode, but it is that ability that make the KindleBerry Pi possible.
So what happen here, is that using the keyboard connected to the Raspberry Pi, you will login into the Raspberry pi with the Kindle and then share the same ‘screen’ session so that you can use the keyboard connected on the Raspberry Pi. You will still need to use the Kindle keyboard to create that first connection, but once your connected, you can use your mail keyboard.
Although gnu screen come and save the day, to automate the whole process there are few more steps to be done.
Usb network for the Raspberry Pi
First we want to be able to use UsbNetworking when connecting Kindle. When the Kindle is on usbNetworking, it assign the ip 192.168.2.2 to its USB port. Whe then need the Raspberry Pi to assign its USB port the IP 192.168.2.1 and that has to be automatic. To do so, the first step is to add to your /etc/network/interfaces :
iface usb0 inet static
up iptables -I INPUT 1 -s 192.168.2.1 -j ACCEPT
Automatic login on the Raspberry Pi
Now we need the Raspberry Pi to 1) make sure one user login automatically and 2) have a screen multiuser session started at boot time. We will be using the same user for the login at boot time and login with the Kindle.
For the automatic login on boot, on debian (which is one of the main build of the Raspberry Pi) you have to ;
(or using any other editor) and comment out:
[prettify] #1:234:respawn:/sbin/getty 3840 tty1 [/prettify]
Category: How to computer