Experiences of Wireless Networking and Linux
The moment had come and we were finally out of space in our offices. We just couldn't avoid setting up another desk for some part-time admin and financial work in a room outside the main offices. Unfortunately, the existing ethernet wiring had no chance of reaching anywhere in the adjacent building where there was space for a desk. Thoughts of wireless networking had been floating around for a while but now there was an excuse to get the bits and pieces to see if it all worked as advertised. A chance encounter on the train back from London with Rik Wade of Planet Online somehow got around to the topic and he said he'd heard that Zoom wireless networking cards worked OK with Linux. In the UK Simply Computers do them for a reasonable price, so a pair were ordered and arrived next day.
The pricing scheme is hilarious — without the paperwork to hand I can't give an exact price, but it was somewhere between £60 and £70 each, or around $100. There are two kinds: the ISA card and the PCMCIA card, with the PCMCIA card being about £5 more expensive. The funny bit is that the ISA card is actually a PCMCIA card plus an ISA adaptor, yet it's less expensive than the PCMCIA kit alone. If you are thinking of getting some, the PCMCIA version is clearly worse value. The cards themselves are identical. Simply's prices look very good. PC World is selling the same cards at £199 each!
Here's what the cards look like:
The PCMCIA Card.
The ISA Adaptor Card (not to scale, the PCMCIA card plugs into it).
A search around the net for the drivers didn't take long. The Zoom card is a clone of several others based on the Prism chipset and the driver is for all of them. Following the instructions was a matter of reading the README and doing what it said. You do need to have the kernel sources and the pcmcia sources on the sytem you are building for, so it's not entirely straightforward, but it can be done fairly quickly once you have read the instructions. A gotcha on Red Hat systems seems to be that the PCMCIA sources are shipped without the "Configure" script having been run and you do have to do that before the wireless stuff will build. The card in my usual laptop was up and apparently working in about an hour, but of course you can't test it until there are two working, so I went and got a spare laptop (a relatively old Compaq) and repeated the driver-building process.
Then began the time-wasting. The Compaq refused point-blank to talk to the card and despite digging for hours through the documentation and mailing lists that I could find, there appeared to be no combination of parameters that could be set to make it work. Eventually I gave up and dug out yet another ancient laptop. Voila, up in minutes, and ping, telnet etc were working fine. One of those lovely PCMCIA quirks.
There are various ways of configuring this type of network, either as ad-hoc peer-to-peer or the more complex `infrastructure' model which involves expensive access-point hardware, or so I read from the documentation. I went for the simple peer-to-peer version which can be done with just two cards.
To do this, you have to pick one of the systems in the network to be the `master' and tell it to create a network identifier (the Service Set ID, SSID) along with which of the available channels to use. The network identifier is a string that you can choose as it suits you. The channel selects the specific radio frequency to use within the 2.5GHz band. There will be 11 or 12 available (12 in Europe apart from France). It's posible to have multiple networks running in overlapping physical space by using different identifiers, channels or both. All of this is done in the wlan.opts file (if you are using PCMCIA) and it's obvious where it goes. Only the master should be set to create the SSID, the others will just scan for it — but they need to know what ID to scan for.
The slave sytems are set up to scan the channels looking for your chosen identifier. My reading of the documentation is that the network indentifier does not get used for encryption so even if networks are in radio range, they would need to know the identifier to be able to see your data, but that's all. There is a further level of security that can be set for these networks but the current driver set doesn't support it for Linux. Considering the effective range (see below) security doesn't seem to be an huge issue. The documentation suggests that adding encryption is not a big deal but you have to be prepared to hack the drivers and be original. Maybe someone has already done it if you look hard enough.
Though setup requires the concept of master and slave systems, once the network is up the systems are true peer-to-peer and you can lose the master with no effect on the system; as long as at least one peer stays up, the network indentifier won't be lost. We've tried that in practice and it works.
Frankly, the setup is a bit tricky unless you are used to reading README files and are familiar with compiling source packages. The compile failed for me until I realised the trick about the Red Hat PCMCIA configure script being needed. You begin to realise how easy it has all been made for Windows users: stick in the card, install the drivers with a click then do a bit of point-and-click network config. Still not easy, but probably a five-minute job rather than a couple of hours and the need to understand gcc's error messages. I woulnd't swap places, but it would be nice to have the best of both worlds if there was any easy way.
So how does it all work? The maker's documentation says you should expect to get around 100m range from the cards and that whilst obstructions will reduce the signal strength it's hard to achieve that in normal settings.
Sorry folks — the reply to that has to be `Rubbish'. With systems in line-of-sight of each other, or separated by a thin wall / window or at most two sets of floorboards, the results have been acceptable. We never expected blistering speed; these cards give you 2Mb/s, or very roughly a fifth of standard Ethernet. Not stunningly fast, but adequate to run most of the X screensavers most of the time and telnet is been fine so long as there is a good signal. Accessing large files via the network is very much slower than over our wired network.
As soon as any reasonable obstruction gets in the way — like a brick wall or two - you are lucky if anything works. We've used the wlandump utility to see beacon and data packet transmissions plus the strength of the received signal. The received strength tails off rapidly with distance or obstructions. Overall it's been disappointing. As I sit here, I am less than five yards from the other peer, with a Yorkshire sandstone wall between us (admittedly a couple of feet thick) and I might as well be miles away. If I move the laptop all over the place, like adjusting one of those rabbit ears TV-top aerials, I can very occasionally see a packet get through, but it's effectively unusable.
Realistically you could use these cards in in a hot-desking office without needing to run cables to each desk, and provided other peers are reasonably close it would be handy way of moving from desk to meeting-room in the typical office where thin (non-structural) partition walls are used. In our experience as soon as anything thick enough to provide structural strength gets in the way, the results become very marginal. A real shame, because there are two substantial walls between our base station and the new admin office. You can watch the packets slow and stop as you carry a laptop in through the doorway. Time to run a cable after all.
There is a wealth of information around about this 2.5GHz free-for-all radio technology. Apart from cruddy short-distance access like the kind we get from the Zoom cards, some of the more upmarket cards (most of which are nowadays compatible and interwork according to what everyone else says) have external antenna connectors. There are a number of projects around that have connected these to high-gain external antennas and got ranges of several miles out of them. Provided you have line of sight visibility and don't mind a bit of soldering and cabling, that looks like a very cheap alternative to leased lines. From reading through these other resources, it looks clear that if you spend a bit more money, you can get much better results than we did from the lowest-cost route. Using cards that support external antennae is obviously a smart move and of course you can also dig a bit deeper in your pockets and cough for a proper access point device.
- Wireless LAN Resources for Linux — comprehensive guide to just about everything Linux related to do with wireless LANs