D-Link, Wireless and Debian
I wrote a couple of days ago with some questions about getting
wireless connectivity set up.
I've basically got things working (thanks in no small part to the help
I received here), but in a way that seems crude and imperfect. So I
thought I would write back, in case my experience could help someone
else get going in an initial way, and in addition to see if I could
get any advice about doing things better.
The hardware: a D-Link DWL-650 PCMCIA wireless card in a couple of
a D-Link DWL-900AP wireless access point.
I have a desktop running Debian 3.0 set up as a simple router/firewall,
and a laptop running Debian `testing'. All of the machines in question
(desktop, laptops) have fixed IP addresses on the local network. I
haven't tried setting up the desktop as a dhcp server for the local
network, but, as far as I can tell, that wouldn't be hard.
My initial difficulty was that the D-Link DWL900 access point can be
configured only with Windows tools and utilities. I have no access to
any Windows machines, so I wasn't able to do any configuration at all
on that end. (There is actually a sourceforge project to let you do
this in Linux: http://sourceforge.net/projects/wap11gui, but I
haven't managed to get it compiled.)
It turned out, though, that at least for the simple set-up I had in
mind, no configuration was needed. I just plugged the AP in to a
Netgear hub attached to the ethernet port of the desktop, and that was
all I had to do on that side.
On the laptop side, I had pcmcia-cs from the 2.4.18 kernel-source (I
do not have the free-standing pcmcia-cs source). I installed the
wireless-tools and linux-wlan-ng packages from testing. I added the
following stanza to /etc/network/interfaces:
iface eth1 inet static
wireless_mode managed # so that it communicates with the AP
wireless_nick lapdog # a nickname for the laptop
wireless_enc on # use at least some kind of encryption
I edited /etc/pcmcia/wireless.opts so that card services would pick up
these values from the interfaces file when it brought up the interface.
This way of proceeding is clearly documented in the file itself.
When I stopped and restarted /etc/init.d/pcmcia, and inserted the
card, the eth1 interface was brought up.
And it just worked. (This account actually abbreviates a lot of
intermediate futzing around, during which I called iwconfig and
ifconfig and route by hand, and got things to basically work.)
Or at any rate it works fairly well. I get a lot of error-messages
Tx error, status 1 (FID=00F0)
(annoying on the console and in the log-files, but invisible in
X). This must mean that I'm getting poorer performance than I
might. But still, the basic setup is more than functional for
everything I've so far tried---web-browsing, mail, ssh connects to
other hosts, and so on (as is shown, for instance, by the fact that
I'm sending this (or will, I hope) over the wireless connection).
I'm puzzled mainly by the sense that it shouldn't be working this
well. If I understand correctly, the D-Link DWL650 is a prism card and
is best supported by drivers made available in the linux-wlan-ng
package. In getting that package to work, though, I got stalled by the
requirement of compiling a new kernel-module, which required both the
kernel-source and the independent (non-kernel) pcmcia-cs source. My
pcmcia stuff works well at present; I've hand-compiled pcmcia source
in the past. If I can avoid doing it again, I'd like to, especially if
installing and hand-compiling it might compromise things that work
well at present. But if I thought it would stop the flow of Tx error
messages, and would improve performance, and if I thought that it
wouldn't break existing working systems, I'd certainly take this step
Thanks very much indeed to all who helped already. If anybody had any
further thoughts or advice, I'd be really grateful,