I went to the orientation for graduate students at Georgia Tech today. The campus is incredibly neat; you hardly feel that you’re in the city.
I’m glad I finally got a lot of this stuff sorted out. Finally had my student account (and thus email, etc.) activated, so I can finally catch up on departmental stuff I’d missed so far. Which, apparently isn’t much because they’d forgotten to add me to the mailing list for incoming Computer Science graduate students. So far, I apparently missed the fact that I’ll need to go back Thursday and Friday for the CoC orientation. At least I found out in time, no?
They have a campus-wide wireless network, obviously. However, it can be slightly annoying to use for anyone with NetworkManager under Linux. Thankfully, NM is somewhat easily configured to connect seamlessly.
First, the Georgia Tech wireless ESSID is hidden. This normally isn’t a problem, but they have a parallell service being offered whose ESSID is broadcast. However, this is a pay-for service meant for campus visitors only. The problem is, if you’ve connected to it (which is somewhat necessary in order to find the ESSID and WEP key for LAWN, the service provided free for students), NetworkManager prioritizes this network over the one you truly want.
Not too tough to get around, just slightly annoying. To remove NetworkManager’s memory of the network, run the following command (which purges it from gconf).
gconftool --recursive-unset /system/networking/wireless/networks/FASTPASS
Now that that’s out of the way, we need to do a few more things. First, NetworkManager detects that a network with a hidden ESSID exists based on its AP MAC address. Since multiple access points cover the campus network, you’ll need to have all of these added to the network profile so it reliably detects the network all around campus. If all of these are not set, you’ll have to re-enter the ESSID and WEP key whenever you’re in an area of campus you haven’t been before. This will likely mean another trip to the pay-for network, where you can (for free) look up these values. But, you’ll have to purge the information from gconf again, with the command above.
My current list of access points is:
- 00:03:93:ED:EC:B8
- 00:0F:8F:3D:D7:81
- 00:0F:8F:3D:D8:31
- 00:0F:8F:3D:D9:D1
- 00:0F:8F:3D:E4:11
- 00:0F:8F:3D:E4:51
- 00:0F:8F:3D:E4:61
- 00:0F:8F:3D:E4:D1
- 00:0F:8F:40:7B:D1
- 00:0F:8F:40:7E:C1
- 00:0F:8F:40:7F:81
- 00:0F:8F:40:82:D1
- 00:11:20:4B:FB:01
- 00:11:20:4C:01:B1
- 00:11:20:52:C9:01
- 00:11:5C:A1:B2:A1
- 00:11:5C:A1:B4:11
- 00:11:5C:A1:B4:41
- 00:11:5C:A1:B4:81
- 00:11:5C:A1:B5:01
- 00:11:5C:A1:B5:11
- 00:11:5C:A1:B5:41
- 00:11:5C:A1:B5:D1
- 00:11:5C:A1:B5:F1
- 00:11:5C:A1:B6:11
- 00:11:5C:A1:BE:E1
- 00:11:5C:A1:BF:31
- 00:11:5C:A1:BF:41
- 00:11:5C:D4:7E:A1
- 00:13:5F:55:15:91
- 00:13:5F:55:17:61
- 00:13:5F:55:17:E1
- 00:13:5F:55:18:D1
- 00:13:5F:55:19:F1
- 00:13:5F:55:2C:A1
- 00:13:5F:55:34:31
- 00:13:5F:59:17:C0
- 00:13:5F:59:2C:80
- 00:13:7F:BB:40:21
- 00:13:7F:BB:41:A1
- 00:13:7F:BB:41:B1
- 00:13:7F:BB:41:D0
- 00:13:7F:BB:44:81
- 00:13:7F:BB:44:F1
- 00:13:7F:BB:45:71
- 00:13:7F:BB:45:B1
- 00:13:80:94:43:31
- 00:13:80:94:47:91
- 00:13:80:94:52:71
- 00:13:80:94:52:A1
- 00:13:80:94:5D:51
- 00:13:80:94:5E:51
- 00:13:80:94:5F:51
- 00:13:80:94:60:61
- 00:15:2B:42:50:81
I’ll (hopefully) add more as I come across them later on.
The gconf command to insert these is
gconftool --set /system/networking/wireless/networks/GTwireless/bssids -t list --list-type string "[00:13:5F:55:18:D1, 00:13:5F:55:19:F1, 00:13:5F:55:15:91, 00:13:7F:BB:40:21, 00:0F:8F:40:7E:C1, 00:0F:8F:3D:D7:81, 00:11:5C:A1:B5:D1, 00:11:5C:A1:BE:E1, 00:13:7F:BB:44:F1, 00:11:5C:A1:B6:11, 00:11:5C:A1:BF:41, 00:11:5C:A1:BF:31, 00:13:5F:55:34:31, 00:13:5F:55:17:61, 00:11:5C:A1:B5:01, 00:11:5C:A1:B2:A1, 00:0F:8F:3D:D8:31, 00:0F:8F:3D:E4:51, 00:13:80:94:60:61, 00:13:7F:BB:45:71, 00:13:7F:BB:45:B1, 00:0F:8F:3D:E4:61, 00:0F:8F:40:7B:D1, 00:0F:8F:3D:E4:D1, 00:13:7F:BB:41:D0, 00:11:5C:A1:B5:11, 00:0F:8F:40:7F:81, 00:11:5C:A1:B4:11, 00:0F:8F:3D:E4:11, 00:0F:8F:40:82:D1, 00:03:93:ED:EC:B8, 00:11:5C:A1:B5:41, 00:11:5C:A1:B5:F1, 00:11:5C:D4:7E:A1, 00:11:5C:A1:B4:81, 00:13:7F:BB:41:A1, 00:13:80:94:5E:51, 00:13:7F:BB:44:81, 00:13:80:94:43:31, 00:13:7F:BB:41:B1, 00:13:80:94:5F:51, 00:13:80:94:47:91, 00:15:2B:42:50:81, 00:11:20:4C:01:B1, 00:13:80:94:52:71, 00:11:20:52:C9:01, 00:13:5F:55:2C:A1, 00:13:5F:55:17:E1, 00:13:5F:59:2C:80, 00:13:5F:59:17:C0, 00:11:5C:A1:B4:41, 00:11:20:4B:FB:01, 00:13:80:94:5D:51, 00:0F:8F:3D:D9:D1, 00:13:80:94:52:A1]"
Note to any Georgia Tech staff reading my page: this will not give you campus access. It will only ensure that NetworkManager detects the wireless connection in the areas serviced by these access points.
We’re almost done. If you’ve connected to LAWN and fired up your web browser, you will find that you’re redirected to a login page, where you have to enter your student account name and password. This is easy enough to do, but we can automate it, so you never have to see this page again. Thankfully, the folks at Georgia Tech who set this system up were kind enough to give a few niceties to Linux users, and include an easy API over the command-line, through tools like curl or wget. I prefer wget, so the script I use to automate this login uses it. However, instructions to use cURL are on the LAWN information page.
NetworkManager lets you drop scripts into /etc/NetworkManager/dispatcher.d/ which get run whenever it brings up an interface. I’ve attached the script I wrote to automate this login process. It’s nothing complicated, but it does ensure that an exit status of 0 is set when access is granted or when you’re doing anything other than bringing up the Georgia Tech wireless network (i.e., it does nothing when you’re connecting to other networks), and it returns 1 upon failure. This is opposite from the return values they give you, but oh well.
Drop this script into /etc/NetworkManager/dispatcher.d/99gtwireless. Once you’ve done so, run
sudo chmod 700 /etc/NetworkManager/dispatcher.d/99gtwireless
This will allow it to be executed, and prevent it from being read by other users on the system. Second, replace the USERNAME and PASSWORD variables with your personal Georgia Tech student account information. Yes, these will be saved in plaintext on your hard drive. However, the earlier chmod to 700 should be sufficient in preventing normal users from accessing its contents. Make your own decision about the potential security implication of storing passwords on your hard drive. For me, I consider this relatively little risk. I’m the only user of my laptop, and the aforementioned chmod is enough to prevent casual users from stumbling upon it. But, to each his own.
Aeon’s Lair » Blog Archive » Script: 99gtwireless | 21-May-07 at 6:45 pm | Permalink
[…] More information is available from The Armchair Politician, including some MAC addresses to get NetworkManager started. […]
Aeon’s Lair » Blog Archive » 99gtwireless, revisited for KDE and suspend/hibernate | 13-Aug-07 at 8:52 pm | Permalink
[…] One of my first posts was a script to facilitate Ubuntu users on Georgia Tech’s LAWN wireless network. After some more research I found the instructions only really applied to GNOME (especially the gconf settings). The guide also did not cover suspend/hibernate. […]