Kindleberry Wireless Without Rooting the Kindle

Peter Vojtek edited this page Feb 11, 2014 · 24 revisions

Goal

Wireless keyboard is connected to your Raspberry Pi and Amazon Kindle act wirelessly as display for the linux shell. Some photos are below.

State of the Art

There are two good tutorials how to use the Amazon Kindle as a display for your Raspberry Pi, however both require you to root the Kindle:

  • KindleBerry Pi: they rooted Kindle and connected keyboard + RPi + Kindle all together via USB cables.
  • Kindleberry Wireless: similar as above, but with wireless keyboard and wifi router.

The point of both approaches is that the user logs in from rooted Kindle to RPi via SSH client and since the moment the SSH client running on Kindle acts as screen.

Doing the same without rooting the Kindle

Instead of rooting the Kindle and running an SSH client, we use Kindle's web browser to connect to the Raspberry Pi, so that the web browser will behave as SSH client thanks to shellinabox.

  • Install the shellinabox package on Raspberry Pi.
  • If you use Raspbian, just run: sudo apt-get install shellinabox
  • make sure your Raspberry Pi is connected to network and determine its IP address by running ifconfig
  • run following commands on your RPi:
  • echo "script --flush /tmp/rpi.terminal.file" > ~/kindle.server
  • chmod +x ~/kindle.server
  • echo "tail -f /tmp/rpi.terminal.file" > kindle.client
  • chmod +x ~/kindle.client
  • make sure the wireless keyboard is connected to your Raspberry Pi and working. I use Logitech K220 wireless keyboard with success.
  • once wireless keyboard is connected to Raspberry Pi enter your login and password via the keyabord so that you login to RPi shell. I type the login and password in headless mode so that I cannot see what I type (the Kindle display is not connected yet).
  • still in the Raspberry Pi keyboard's shell, I run the command: ./kindle.server
  • now, on the Kindle, do following:
  • launch the web browser and visit the shellinabox web server running on your Raspberry Pi http://your-raspberry-pi-ip:4200
  • you will be redirected to default HTTPS page and you will see shell login
  • in the Kindle's browser, login to your Raspberry Pi's shell with login and password. On my Kindle 4 this means I have to enter the login and password via the virtual keyboard provided by Kindle, which is bit painful (see photo below).
  • now I enter the following command in my Kindle's web browser via the virtual keyboard: ./kindle.client
  • And since this moment, whatever is typed and executed via the wireless keyboard connected to Raspberry Pi, you can see the outcome in the Kindle's web browser.

Making it easier

  • create new linux user on Raspberry Pi named kindle
  • add ./kindle.client at the end of /home/kindle/.bashrc - this will launch the command automatically once you login from the Kindle's browser.
  • Kindle 4 will automatically enter sleep mode after 10 minutes. This approach is useful to avoid the sleep mode:
  • Press the Home button to go the the Kindle home screen
  • Press the keyboard button to display the virtual keyboard
  • Type following string: ;debugOn and press Enter button (not the Done button)
  • Type following string: ~disableScreensaver and press Enter.

Drawbacks (compared to Kindle rooted mode)

  • you don't have fullscreen mode

Photos

Logging in via the virtual keyboard on Kindle: Kindleberry - logging to shellinanbox

Kindle and wireless keyboard: Kindleberry - wireless keyboard

Comments

If you would like to comment, please post an issue.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.