[General Topics] Menneisyys:
Anyone having read my tutorial on the new Internet Sharing utility in Windows Mobile 5 AKU3 and later versions (including, of course, WM6) knows that it’s not possible to use a Windows Mobile device as a GPRS / EDGE / UMTS / HSDPA etc. cellular modem via Wi-Fi, Bluetooth DUN or, with some exceptions, even infrared, “only” over BT PAN and USB. This means a lot of devices can’t connect to the Net if they don’t support either BT PAN (or USB with desktop Windows operating systems). While the BT DUN hack published some months ago certainly helped the situation (allowing for connections via the far more widely supported, “traditional” Bluetooth DUN), it still didn’t let for using the Windows Mobile Phone Edition (“Professional” in WM6 parlance) device as a modem with clients connecting via Wi-Fi.

XDA-Developers hacker fluxist has just published a tutorial on his latest finding, which, at last, allows for accessing the Net using a Windows Mobile device via Wi-Fi.

I've thoroughly expanded (also with screenshots) the tutorial and tested it with some other Pocket PC's. The results are as follows:

Start Programs / Internet Sharing. Enable the sharing for Bluetooth PAN (NOT USB!) using Connect (left softkey). If you’re prompted for enabling Bluetooth visibility, close the dialog box as usual by pressing OK.

Start editing the Registry with a registry editor and change HKLM\Comm\ ConnectionSharing\ PrivateInterface (which is, by default, "BTPAN1") to the internal name of your Wi-Fi adapter. It’s "TIACXWLN1" with most models.

If it’s not the case (for example, with the HTC Wizard, which uses TNETWLN1 instead), make sure you search for the same string in the Registry as in Settings / Connections / Wi-Fi. For example, it’s “SDIO WLAN Wireless Adapter” on the Wizard and “tiacxwln Compatible Wireless Ethernet” on the Universal. Search for this string; the second occurrence (it’s slightly different from the first: first, it has a suffix “1” after the registry key name and also has a "Wireless" value) will be something like this:

On the Wizard:

[HKEY_LOCAL_MACHINE\Comm\TNETWLN1]

"DisplayName"="SDIO WLAN Wireless Adapter"

"Group"="NDIS"

"ImagePath"="tnetwln.dll"

"Wireless"=dword:00000001

On the Universal:

[HKEY_LOCAL_MACHINE\Comm\tiacxwln1]

"DisplayName"="tiacxwln Compatible Wireless Ethernet Driver"

"Group"="NDIS"

"ImagePath"="tiacxwln.dll"

"Wireless"=dword:00000001

Here, all you need to do is looking up the name of the subkey, which is [HKEY_LOCAL_MACHINE\Comm\TNETWLN1] with the first and [HKEY_LOCAL_MACHINE\Comm\tiacxwln1] with the second case. Of this, you’ll only need the last subkey name component; that is, TNETWLN1 and tiacxwln1, respectively.

Note that I’ve made two registry import files available, should you want to be able to quickly change the Registry values, without the need for manually editing the Registry every time you start the Internet Sharing applet. THIS is for the Wizard and THIS for the Universal, TyTN / Hermes and several other models. To make your life easier, just put it in the file system of your Pocket PC and click it after starting and connecting Internet Sharing so that it’s automatically imported. Should you need a RegEdit 5-compliant Registry Editor for your handheld, I recommend Resco File Explorer (see THIS for more info).

To make your life even easier, put the shortcut to the Registry import file straight on your Today screen as is explained for example in THIS article. Then, you won't even need to fire up a file explorer tool to find the registry import file - you just go to the Today screen after starting and connecting Internet Sharing, click the registry import file and all is set.

Go to Settings / Connections / Wi-Fi and select the Network Adapters tab (it’s the default and only visible one when the Wi-Fi unit is disabled). Click the name of the Wi-Fi card (“IEEE 802.11b/g Compatible Wi-Fi” on the HTC TyTN / Hermes, “SDIO WLAN Wireless Adapter” on the Wizard and “tiacxwln Compatible Wireless Ethernet” on the Universal). Enable “Use specific IP address” and enter the IP address 192.168.1.1 into the first field (“IP address”). When you click the second row (“Subnet mask”), it’ll auto-fill 255.255.255.0. Just keep it at that. This is shown in the following screenshot:

From now on, you go on as with adding a p2p network (see THIS for my earlier article if interested – reading it is not needed for completing this tutorial): click “Add new…” on the Wireless tab:

Enter a network name (it can be anything; in here, it’s “WRadhoc”) and make sure you check in “This is a device-to-device (ad-hoc) connection”:

After clicking Next, you can set up whether you need encryption or not. If not, just set “Data encryption” to “Disabled” as can be seen in the following screenshot:

Note that you can use both WPA and WEP for encryption. I don’t discuss setting this up as only one client will be able to connect to your Windows Mobile device at a time – while it’s connected, there surely won’t be other clients connected to it. And, after you’ve ended your Net session, when you close Internet Sharing and/or disable Wi-Fi, no one will be able to connect any more either. That is, it's MUCH safer than traditional access points without any kind of encryption.

Finally, in the list of the available connections, tap-and-hold the just added network and select “Connect” from the context menu:

http://www.winmobiletech.com/092007WiFiDialup/AddNewNetwork4.png

Now, you’re ready to connect: just fire up your client and search for nearby networks, making sure you’re not only looking for access points, but also peer-to-peer (ad-hoc) networks. This (looking for both types of network) is the default with both desktop Windows Wi-Fi clients and those of Windows Mobile; other platforms might be needed to be manually instructed to list available ad-hoc connections too.

Your new ad-hoc network will be discovered; tap-and-hold the connection and select “Connect” in the context menu. Press Next on the next few dialogs that come up. After some seconds, the networks will connect.

Problems:

The connection was pretty slow with my Universal. The Wizard was even worse: the Wi-Fi connection continuously dis- and, then, reconnected, making for example Web browsing even slower. In these cases, assuming you ONLY want to access the Web (and not want to run, say, Instant Messaging clients on the client), you might still want to prefer my proxy server running on the modem.

As for example Hermes users reported far better results, it might be possible the speed depends on the actual modem used.

You MUST re-edit the Registry (preferably import one of the Registry scripts I’ve provided before) each time you press the Connect button in Internet Sharing. The sole reason for this is that, by default, Internet Sharing sets back the Registry to BT PAN when it’s connected.

Currently, there’s no solution to this problem. Hope fluxist will be able to hack the DLL file so that it doesn’t overwrite the Registry every time you initiate a connection (see THIS for more info if interested).

The hack doesn't work on the MS Smartphone platform - for example, on the HTC Vox / s710, which also has Wi-Fi. That is, you can't use MS Smartphones as Wi-Fi modems.