WiFi Woes


So where I live most of the time, the 802.11 access points that are installed utilize an anti-rogue AP mechanism that not only blocks other APs from using the same SSIDs they are advertising, but to also prevent other 2.4GHz networks from being created and used as a way to enforce their ban on setting up private WLANs.

So I recently acquired a Nokia N900 and wanted to SSH into it. With only 2.4GHz 802.11 support, utilizing the 5GHz band was not an option. But I decided to go ahead and try it anyways, since my previous phone (HTC Fuze / Touch Pro / Raphael), after some careful tweaking, would be able to connect to a “foreign” AP for a minute or two before being kicked off.

Guess what? Association works!

But there’s a slight tweak that’s required to be able to use the N900 for any services such as SSH. Normally, at home, I can connect the N900 to my 2.4GHz band and access it from another computer without any special tricks. But due to the bullcrap policy of prohibiting unauthorized APs, the “Power Saving” option for the wireless controller of the N900 needs to be disabled in order to use it for services. Solution #2 is to make an applet that runs a shell script invoking a ping command that pings any IP on the LAN. I used the gateway’s. Both of these keep the WLAN connection “active” and work some magic, probably with CTS/RTS protection.

I personally recommend the 2nd method as it is more secure and allows more control over the power management.

Here’s a “HowTo” for both solutions:

SOLUTION #1 – Disable Power Management
1.) Settings -> Internet connections -> Connections
2.) Select your WLAN’s profile and press “Edit”
3.) Press “Next” 3 times to get you to the end of the wizard.
4.) Press “Advanced”, then to the “Other” tab.
5.) Change “Power saving” to “Off”
6.) “Save”, “Finish”, “Done”, “Save”

SOLUTION #2 – Make a Ping XTerm Script
You must have root access to set this up or it won’t work. (Hint: Install the ‘rootsh’ package.)

Create the file /usr/share/applications/hildon/keepalive.desktop containing the following:

[Desktop Entry]
Encoding=UTF-8
Version=0.1
Type=Application
Terminal=true
Name=KeepAlive
Exec=/usr/bin/osso-xterm 'sudo ping [RHOST]'
Icon=
#X-Window-Icon=timerwidget
X-Window-Icon=
X-HildonDesk-ShowInToolbar=true
X-Osso-Type=application/x-executable

Change [RHOST] to whatever host you wish to use. This script will open up xterm and ping the specified host. A straight up execution of a ping will send the task to the background and you will need to then grep for the PID and kill it to stop execution. Running in xterm will give you a much easier way to stop the script.

Cheers.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.