Home: Software : Linux : Access Point

I started with a linux box running 2.4.19 kernel with a Belkin 802.11b wireless PCMCIA card (with a PCI adapter) running as a access point. Things worked great, but the Belkin card had limited range due to the fact that it had a built in antenna. When we moved into our new house the card couldn't reach the other side of the house which was a problem.

I purchased a Linksys WTR54GS router thinking it would solve the problem. From day one it was nothing but trouble. I would sit across the house from it and it would disappear, come back and disappear again. I figured it might have a problem with the range so I added the Linksys 7db antenna upgrade to it only to have the same problem. I tried all 4 currently available firmware versions (2.06.1, 2.07.1, 3.17.4, 3.37.2) and all had the same problem. I tried multiple versions of the Sveasoft firmware (5.3, 5.4a, 6.0rc1, 6.0rc2, 6.0rc3) and all had the same problem. Even with the watchdog program that was added to the Sveasoft firmware it had problems. I thought it might be my laptop (TiBook 500), but it happens with a brand new laptop as well (G4 iBook 12"). May be I got a bad one, so last resort I bought another one only to find it has the same problem.

So I started looking at building another access point, but I wanted to add more features than the current one I have running. I wanted 802.11g/b, external antenna and wanted it to be a PCI card. I stared looking around and I couldn't find any detailed information on what cards would work. I ran into a lot of cards that claimed to work but didn't. It seems that the version one of the card used the correct chipset, but version two of the cards the chipset was changed to something that was incompatible and of course version one of the cards was hard to come.

After finding no luck on the PCI card front I started looking at the wireless access groups trying to spread wireless access across cities. Most of them are 802.11b, but a few were running 802.11g. The ones I found were running mini-pci cards on a small processor based board, running linux. :-) It seems that the Atheros chipsets and using the madwifi drivers. Most of the G wireless networks seems to be using the NL-3054MP-PLUS cards. So I found all the parts I needed: NL-3054MP-PLUS mini-pci card, mini-pci card to pci card, pigtail to connect to the card and an antenna to connect to the pigtail. Total cost seems to be about ~$135. Right before I was going to order this setup I was reading about the D-Link G520 PCI wireless card and how it used the Atheros chipset. After doing some digging I found it looked like the same chipset as the NL-3045MP-PLUS cards. What the hell, Office Max had one for about ~$55 so I gave it a shot before ordering the other setup as the only thing missing was a external antenna (which I could add later).

Installed the card, upgraded the kernel to 2.6.9 (was running 2.6.9-rc3), installed the latest wireless utilities and installed the madwifi drivers. This part was really simple, but then came the configuring:

modprob ath_pci
ath_hal: module license 'Proprietary' taints kernel.
ath_hal: (AR5210, AR5211, AR5212)
ath_rate_onoe: 1.0
ACPI: PCI interrupt 0000:02:01.0[A] -> GSI 22 (level, low) -> IRQ 22
ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: mac 5.9 phy 4.3 radio 4.6
ath0: 802.11 address: 00:0f:3d:ad:fc:d2
ath0: Use hw queue 0 for WME_AC_BE traffic
ath0: Use hw queue 1 for WME_AC_BK traffic
ath0: Use hw queue 2 for WME_AC_VI traffic
ath0: Use hw queue 3 for WME_AC_VO traffic
ath0: Atheros 5212: mem=0xfe9d0000, irq=22

Everything loaded just fine now lets set up the card. I took the configuration from the other linux server I was running as a access point and just tweak the values a little:

ifconfig ath0 [ip] netmask [netmask]
iwconfig ath0 ESSID "[name]"
iwconfig ath0 channel [channel]
iwconfig ath0 mode Master
iwconfig ath0 key restricted [key]

Hmm, trying to set the key fails. Seems if you want to use WEP you need to install the wan_wep kernel module, that only took me a few hours to figure out. :-| Ok, now all the above commands work, but just a few problems. It is only working in 802.11b mode. After a few hours more hours of playing with the card, looking on the internet and looking at the docs I found you need to manually change the mode of the card:

iwpriv ath0 mode 3

It seems putting it in master mode will change it to a wireless B access point and mode 3 turns it into a G/B. Next problem was none of the laptops could connect to the access point. It works if WEP is turned off, but not when it is on. It seems that you need need to manually set the authmod after setting the key or WEP just doesn't work:

iwpriv ath0 authmode 2

Ok, now everything seems to be working great!

© 2001-2019 Brian J. France, All Rights Reserved.