Neo 1973 and Windows

From Openmoko

Revision as of 22:09, 17 July 2008 by Galadh (Talk | contribs)

Jump to: navigation, search

This page tries to collect some information on how to use your Neo1973 together with a computer running a Microsoft(R) Windows(TM) series operating system.

Please note that this is not really supported, and that the OpenMoko developers themselves only use Linux for testing.

Also note that Windows appears to not recognize and communicate with the neo as a USB device unless you install the .inf file below, and hence you will always have to force fast charge to recharge using a usb connection to a Windows machine unless you install that .inf.

Contents

Connecting to the phone

Bluetooth connection

How to connect to Windows XP via Bluetooth is described here: Manually_using_Bluetooth#Bluetooth_networking_with_a_Windows_XP_system


USB Ethernet emulation

NOTE: For Windows XP USB RNDIS networking finally works as of Kernel 2.6.22.5-moko11 using the procedure described below.


NOTE: For Vista this procedure works with the 2.6.24 kernel that ships with the Neo Freerunner. The initial SSH connection seems a little slow however.


  1. Download http://privat.wmo.de/~c_schweers/NeoRndis.inf (Listing of NeoRndis.inf) to somewhere convenient on your Windows machine. If the file is not reachable, you can download another working inf file here: http://users.informatik.uni-halle.de/~rabe/neo/Neo1973.inf (Listing of Neo1973.inf)
  2. Power up your Neo1973, let it boot into OpenMoko, and then connect its USB port to the Windows machine, using a standard USB-A to USB-mini-B cable. Note that if you connect the cable before powering the phone on, Windows will detect a device presented by the boot loader. This probably isn't what you want. Let the phone power up first.
  3. Assuming the new drivers have been installed as above, Windows should detect the Neo1973 and prompt you for a driver for a "RNDIS/Ethernet Gadget". Select to specify your own driver, and then choose the NeoRndis.inf file you downloaded earlier. This file tells Windows XP to use its own built-in RNDIS driver for the device.
  4. Windows may complain of "reduced network connectivity". This is because it expects to be able to get an address automatically from the Neo1973 and it doesn't provide one in the default setup. To fix this, see the next step.
  5. Go into the Windows network configuration for the new USB networking adapter and set the IP address of the interface to 192.168.0.200.

You should now be able to connect to your Neo1973 on 192.168.0.202 via ssh (e.g. putty)

Connection to the Internet

If you want to connect to the internet from your Neo via Windows XP, e.g. for doing ipkg update/upgrade, you need to set up IP forwarding and routing properly.

Option 1, using Windows ICS

An easy way to do this is to use Windows Internet Connection Sharing.

To do this, you need to create a network bridge which contains the usb connection to the Neo.

Then you tell Windows to share the WAN connection (i.e. the network interface which connects your Windows system to the internet) with the new bridge.

Then you manually set the IP address of the bridge to 192.168.0.200

After you have done all this, the Neo will be able to route through the Windows machine out to the internet. DNS queries will also be proxied by the Windows machine. Of course, /etc/resolv.conf on the Neo needs to be set to your local DNS or a free DNS.

New When you have LAN with network address 192.168.0.0 you have to do some hacking. 1. Edit /etc/network/interfaces and set for usb0 address 192.168.2.202

  netmask 255.255.255.0
  network 192.168.2.0
  gateway 192.168.2.1

On Windows go to Network settings, pull out LAN cable (so there's no connection with local DHCP server which conflicts with IP 192.168.0.1), enable connection sharing for Neo-USB cable. Then edit Neo-usb interface settings and change it's IP address to 192.168.2.1 and set gateway for yours 192.168.0.x (other which you have). Apply changes with OK. Put in net cable. Enjoy net on NEO.

Option 2, using IP Forwarding and extra routing

An alternative way is to do it manually:

In the Windows registry, go to:

Hkey_Local_Machine\System\CurrentControlSet\Services\Tcpip\Parameters

and set

REG_DWORD: "IPEnableRouter" to "1"

Be aware that IP Forwarding can be a security risk.

Then, if there is a router between your Windows XP system and the internet, you also need to tell the router how to get back to your Neo, so you need to set a route on it for 192.168.0.0/255.255.255.0 to your Windows XP LAN interface IP address. Windows will then forward the packets to the Neo.

Further references

Personal tools

This page tries to collect some information on how to use your Neo1973 together with a computer running a Microsoft(R) Windows(TM) series operating system.

Please note that this is not really supported, and that the OpenMoko developers themselves only use Linux for testing.

Also note that Windows appears to not recognize and communicate with the neo as a USB device unless you install the .inf file below, and hence you will always have to force fast charge to recharge using a usb connection to a Windows machine unless you install that .inf.

Connecting to the phone

Bluetooth connection

How to connect to Windows XP via Bluetooth is described here: Manually_using_Bluetooth#Bluetooth_networking_with_a_Windows_XP_system


USB Ethernet emulation

NOTE: For Windows XP USB RNDIS networking finally works as of Kernel 2.6.22.5-moko11 using the procedure described below.


NOTE: For Vista this procedure works with the 2.6.24 kernel that ships with the Neo Freerunner. The initial SSH connection seems a little slow however.


  1. Download http://privat.wmo.de/~c_schweers/NeoRndis.inf (Listing of NeoRndis.inf) to somewhere convenient on your Windows machine. If the file is not reachable, you can download another working inf file here: http://users.informatik.uni-halle.de/~rabe/neo/Neo1973.inf (Listing of Neo1973.inf)
  2. Power up your Neo1973, let it boot into OpenMoko, and then connect its USB port to the Windows machine, using a standard USB-A to USB-mini-B cable. Note that if you connect the cable before powering the phone on, Windows will detect a device presented by the boot loader. This probably isn't what you want. Let the phone power up first.
  3. Assuming the new drivers have been installed as above, Windows should detect the Neo1973 and prompt you for a driver for a "RNDIS/Ethernet Gadget". Select to specify your own driver, and then choose the NeoRndis.inf file you downloaded earlier. This file tells Windows XP to use its own built-in RNDIS driver for the device.
  4. Windows may complain of "reduced network connectivity". This is because it expects to be able to get an address automatically from the Neo1973 and it doesn't provide one in the default setup. To fix this, see the next step.
  5. Go into the Windows network configuration for the new USB networking adapter and set the IP address of the interface to 192.168.0.200.

You should now be able to connect to your Neo1973 on 192.168.0.202 via ssh (e.g. putty)

Connection to the Internet

If you want to connect to the internet from your Neo via Windows XP, e.g. for doing ipkg update/upgrade, you need to set up IP forwarding and routing properly.

Option 1, using Windows ICS

An easy way to do this is to use Windows Internet Connection Sharing.

To do this, you need to create a network bridge which contains the usb connection to the Neo.

Then you tell Windows to share the WAN connection (i.e. the network interface which connects your Windows system to the internet) with the new bridge.

Then you manually set the IP address of the bridge to 192.168.0.200

After you have done all this, the Neo will be able to route through the Windows machine out to the internet. DNS queries will also be proxied by the Windows machine. Of course, /etc/resolv.conf on the Neo needs to be set to your local DNS or a free DNS.

New When you have LAN with network address 192.168.0.0 you have to do some hacking. 1. Edit /etc/network/interfaces and set for usb0 address 192.168.2.202

  netmask 255.255.255.0
  network 192.168.2.0
  gateway 192.168.2.1

On Windows go to Network settings, pull out LAN cable (so there's no connection with local DHCP server which conflicts with IP 192.168.0.1), enable connection sharing for Neo-USB cable. Then edit Neo-usb interface settings and change it's IP address to 192.168.2.1 and set gateway for yours 192.168.0.x (other which you have). Apply changes with OK. Put in net cable. Enjoy net on NEO.

Option 2, using IP Forwarding and extra routing

An alternative way is to do it manually:

In the Windows registry, go to:

Hkey_Local_Machine\System\CurrentControlSet\Services\Tcpip\Parameters

and set

REG_DWORD: "IPEnableRouter" to "1"

Be aware that IP Forwarding can be a security risk.

Then, if there is a router between your Windows XP system and the internet, you also need to tell the router how to get back to your Neo, so you need to set a route on it for 192.168.0.0/255.255.255.0 to your Windows XP LAN interface IP address. Windows will then forward the packets to the Neo.

Further references