A friend asked how to configure a VPN on Kindle Fire; the short answer is that it’s difficult, resisted by the manufacturer, and can go away in a heartbeat.
Kindle Fire’s Linux kernel lacks the necessary component (tun.ko) required to connect a tunnel. This may be because the vendor feels its unnecessary, and space on an embedded device is more of a “prove we need it” rather than “include everything we might need” mindset, or the vendor realizes the possibility for abuse and purposely blocks this avenue.
The possible uses of tunnelling/VPN include allowing the user to use the Kindle from a corporate VPN connection, or more safely from an open Wifi, or to appear as though from a different country which therefore defeats country-based rights-blocking to purchased content (hey RIAA and MPAA, did you know that the internet was global?)
In order to use a VPN on Kindle, the user needs to “Root” it, similar to “Jailbreaking” an iOS device. As a reminder, the “rooting” will disappear if the device is updated; the actual method used may disappear in a future update as well. Finally, rooting your device, if detected, gives you an unsupported device should anything else happen to it (covered by warrantee or otherwise).
I write these tech articles to remind myself as much as remind others; the process seems straight-forward, but non-trivial: http://www.geek.com/articles/gadgets/how-to-root-the-kindle-fire-20111223/
- download the Android SDK
- set ADB (Android Debugger?) connection to recognize the Kindle Fire’s Vendor ID (0x1949)
- set the Kindle’s SDK to use VID=1949, PID=0006
- configure your Kindle to accept untrusted sources of applications
- Connect your windows laptop with the SDK to your Kindle by USB
- Download and unpack a bunch of tools from a website
- Enable the “su” command, and download a helper app, then reboot
- reboot, and you’re in
If the process supports a non-windows environment, I’ll update this post.Notice: link_pages is deprecated since version 2.1! Use wp_link_pages() instead. in /usr/share/wordpress/wp-includes/functions.php on line 3378