Monday, April 03, 2006

DLink gaming router & 108Mbps wireless card in Linux


About a month or so back, I posted my experience about how most of today consumer routers are incapable to handle heavy bittorent traffic on a local forum. It generated quite some interest & discussions. Ended up DLink has chosen me among few other users to try out their latest gaming router, the DLink DGL4300.

Sure enough, couple weeks later, the delivery guys arrived with the router & a pair of DWL-G520, the 108Mbps wireless PCI network card. The special thing about the DGL4300 is that it has the capability to prioritise traffic between BT or online gaming applications such that it doing BT on one computer does not slow down your online gaming experience on another. It also has a Gigabit switch built in & a fast cpu to ensure a fast throughput.

First experience is that, doing heavy BT do not slow down my internet surfing experience, which I encountered on my previous years-old SMC 7004 router. Getting the DGL4300 working in windows is really nothing. So I shall share my experience in getting it working in Linux.

First of all, the DGL4300 uses WPA-TKIP security encryption which is not supported natively in most Linux distributions today. As I type, Fedora Core 5 is just released about 2 weeks back & the support for WPA-TKIP encryption is not built-in.

They are two parts in getting it working: 1) Installing the linux drivers for the DWL-G520 network card. 2) Getting the OS to be support WPA encryption, such that the card can connect to the router using the protocol.

1. Installing the driver:
Same as the Netgear WG311T, the DLink DWL-G520 uses the Atheros 5212 super-g chipset, and so it's supported by the very popular madwifi driver. I'm using Fedora 4 as testbed and the easiest way to install the driver is via the yum update via ATrpm or Livna repocitory.

To enabled ATrpm repocitory, I added the followings to /etc/yum.conf

[atrpms]
name=Fedora Core $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/fc$releasever-$basearch/atrpms/stable


To retrieve the public key for ATrpm,

rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms

That took care of the repocitory for yum in Fedora Core. Installing the madwifi drivers can then be as simple as

yum install madwifi

For my case, I have yumex(GUI for yum) & I just choose madwifi & yum will take care of the dependency & install three modules namely:

madwifi
madwifi-hal-kmdl-2.6.15-1.1833_FC4
madwifi-kmdl-2.6.15-1.1833_FC4


If you choose to install the individual rpms manually, please note that the modules must matches with the appropriate kernel version currently in used. After a reboot, your computer should see the ath0 listed in network configuration stating it uses the Atheros AR5212 chispet. Trying to connect the ath0 to my router prove to be futile as the network configuration GUI is not WPA aware at this stage.

2. Installing & configuring wpa_supplicant
As your linux box already has the ATrpm repocitory in yum.conf, you only need to do

yum install wpa_supplicant

and wpa_supplicant will be installed to enable WPA encryption in your linux pc. Wpa_supplicant support a multitude of wpa_encryption protocols & in my case, I only need to get it working with wpa-tkip such that my G520 can connect to the DGL4300. Wpa_supplicant is configured using /etc/wpa_supplicant.conf. After some fiddling, I commented out all other options in wpa_supplicant.conf & left it with only the followings:

ctrl_interface=/var/run/wpa_supplicant

network={
ssid="myssid"
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk="my_psk_key"
}

For wpa-tkip encryption, a psk-key is used & you need to key the same passkey in the DGL4300 router. To activate the G520 with wpa protocol as stated in wpa_supplicant.conf, the following command is used.

wpa_supplicant -c/etc/wpa_supplicant.conf -iath0 -Dmadwifi -B

and to effect a network connection, giving dhcp ip addres & dns infomation to the G520 network card, the following command is used

dhclient ath0

Once that is done, you should see your wireless network is up & kicking.