Sunday, September 27, 2009

Kindle USB network tethering (Vista/Windows 7 version)

Getting it to work under Vista is very similar to getting it to work on the mac... though a tad more complicated.

My machine (Windows 7 beta) didn't come with RNDIS driver.
The easiest way to get those is installing the Windows Mobile drivers found here:
http://www.microsoft.com/windowsmobile/en-us/downloads/microsoft/device-center-download.mspx

(if using XP, download ActiveSync 4.5)

For the Kindle.
Get the binary file to re-enable usb networking there


Copied the file update_usbnetwork-k2.bin to the root of the Kindle mounted disk.

Then:
Home -> Menu -> Settings
Menu -> Update your Kindle

After the reboot, I edited the file usbnet/usbnetwork uncommenting the line:
route add default gw ${HOST_IP}
(remove the # in front of it).

For editing, make sure you are using a text editor that preserve the UNIX line-ending, I use the fantastic UltraEdit but there are many other options. Just do not use Windows' Notepad or Write. They will mess up the file and it won't work.

Eject the kindle, and unplug the USB cable.

Put the Kindle in debug mode:
Home.
Type any letter on the keyboard to start the Search mode.
Press DEL to blank the line.
type:
;debugOn
(you get the ; character in the SYM menu).

Type any letter on the keyboard to start the Search mode.
Press DEL to blank the line.
type:
`usbNetwork
(you get the ` character in the SYM menu, 2nd last character on the 3rd line).

Plug the USB cable.

Let Windows install the drivers for the newly found peripheral.

On my machine, the new ethernet connection was created as "Local Area Connection 3" and shows up as "DIRECTV HDPC20". YMMV

Go into Start -> Control Panel -> Network & Sharing Center.
Click on "Change Adapter Settings"

Do a right click on your main network adapter, click on the "Sharing" tab
Check the "Allow other network users to connect through this computer's Internet Connection"

Click "OK"
You will get prompted that the adapter interface will be changed to "192.168.0.1". That's okay, confirm.

Now go and edit the other network adapter "DIRECTV HDPC20" (or whatever it's called on your machine)
Click on the "Internet Protocol Version 4" and "Properties"
change the IP address from 192.168.0.1 to 192.168.2.1 , subnet mask 255.255.255.0.

Validate with OK.
---

Open a command line (windows + R, cmd)
(Note Telnet isn't activated by default in Vista / Windows 7, go into the Control Panel and select "Programs and Features", click "Turn Windows Features on or Off" and check "Telnet Client").
Another alternative is HyperTerminal from Hilgraeve...

telnet 192.168.2.2
[root@kindle root]#

Remount the root partition in read-write mode:
# mntroot rw

I configured the default DNS to use the OpenDNS servers:
# vi /etc/resolv.d/resolv.conf.default

nameserver 208.67.222.222
nameserver 208.67.220.220

(to enter edit mode in vi, press 'i', to save and quit: ':wq!')

# vi /opt/amazon/ebook/config/framework.mario.conf
change the line:
USE_WAN : true
into:
USE_WAN : false

create the file /etc/init.d/usbnet with:
--- Cut below
#!/bin/sh

_FUNCTIONS=/etc/rc.d/functions
[ -f ${_FUNCTIONS} ] && . ${_FUNCTIONS}

US_ENABLE=/mnt/us/usbnet/AUTO

case "$1" in

start)
if [ -f ${US_ENABLE} ]; then
/mnt/us/usbnet/usbnetwork
else
msg "not usbnet" I
fi
;;

stop)
;;
*)
msg "Usage: $0 {start|stop}" W >&2
exit 1
;;
esac

exit 0
--- Cut above

Make the file executable
# chmod +x /etc/init.d/usbnet

Create the link to active the init script
# ln -s /etc/init.d/usbnet /etc/rcS.d/S72usbnet


Now create the file AUTO in the usbnet folder:
# touch /mnt/us/usbnet/AUTO

reboot your Kindle (either using the reboot command, or by doing Menu -> Settings -> Restart.

That's it...

To revert the changes and make the Kindle seen as a USB storage device once again do the following:
telnet 192.168.2.2
# rm /mnt/us/usbnet/AUTO
# reboot

To activate it again, simply create a file AUTO in the usbnet folder. The file system is case insensitive. So AUTO or auto for the name of the file doesn't matter.
Then either reboot ; or enter debug mode (see above); and start `usbNetwork again

That's it... Enjoy.

7 comments:

  1. Ok, have gotten to :

    create the file /etc/init.d/usbnet with:
    --- Cut below
    #!/bin/sh

    _FUNCTIONS=/etc/rc.d/functions
    [ -f ${_FUNCTIONS} ] && . ${_FUNCTIONS}

    US_ENABLE=/mnt/us/usbnet/AUTO

    case "$1" in

    start)
    if [ -f ${US_ENABLE} ]; then
    /mnt/us/usbnet/usbnetwork
    else
    msg "not usbnet" I
    fi
    ;;

    stop)
    ;;
    *)
    msg "Usage: $0 {start|stop}" W >&2
    exit 1
    ;;
    esac

    exit 0
    --- Cut above

    but I can't figure out how to creat the file, please help.

    ReplyDelete
  2. In addressing the router enables wireless networking connection, really amazing what Technology has changed these days. I like meeting new things. This is why i have come to this blog, I find it very interesting.This is like
    costa rica investment opportunities really interesting too.

    ReplyDelete
  3. I think the file in this post is some old:
    http://mobileread.com/forums/showpost.php?p=498421&postcount=14

    Which newer edition is compatible with Kindle DX B004 ver.2.5.4 ?

    ReplyDelete
  4. I want to thank you for posting these interesting tips to configure the USB driver and renew it, I was so curious about how to do that. That is very helpful and works fine as generic viagra pills.

    ReplyDelete
  5. its not working for me.

    i have kindle 2 with 2.5.4 firmware installed.
    Can someone guide me?

    ReplyDelete
  6. I also cannot do it, i have kindle 2i with 2.5.4 May be I have to downgrade it?

    ReplyDelete
  7. Such a useful blog! There are some very great sources here. Thanks to this blog I finally managed to find the information matching my criteria and for this I would like to thank the author for sharing this blog with us.

    aloft hotel kansas city

    ReplyDelete