IBM ThinkPad T41 – going from ipw(4) to ath(4)

IBM ThinkPad T41 – going from ipw(4) to ath(4)

I have an IBM ThinkPad T41. It’s a great little laptop. It’s been very reliable,
despite some initial hardware problems. One major
problem has been the wireless NIC. I’ve been having problems with it for over a year.
The original problem
was a total system freeze. This thread
shows how the problem was resolved with a drive upgrade.

This is where my memory becomes hazy. With more recent versions of FreeBSD (e.g. 6), I found
the ipw driver displayed the same problem again. This time, not even ndis(4) could rescue me.
The NIC is pretty stable under Windows XP but under FreeBSD, the ipw driver was just not up to scratch.
I quickly became annoyed with the situation.

I eventually decided that I would not spend any more time on this problem. It was time for new
hardware. I ordered a ThinkPad 11a/b/g Wireless LAN Mini-PCI Adapter II (US) from IBM.
The part number is 73P4301. I ordered it over the phone, but the
IBM web page
outlines all the details. Total cost was CAD$113 including shipping. Delivery took about a month, but
IBM told me upfront that it would be 4-6 weeks.

I highly recommend the Linux ThinkPad Wiki. It is a
great resource of ThinkPad information. They have a page for my T41
and it was there that I found a link to the Hardware Maintenance Manual. This very useful
document has detailed instructions for replacing your NIC. I will not go into details here, but go slowly
and do not miss any steps. Be gentle.

After replacement

After I replaced the NIC, I booted into XP to try out the card. I did not need to add any drivers
and everything worked as expected.

For FreeBSD, I needed to add ath(4) support to the kernel. I did this by adding
the following to the kernel configuration file:

device          ath
device          ath_hal         # Atheros HAL (includes binary component)
device          ath_rate_sample

Then I recompiled and installed the kernel.
After a reboot, the ath0 device was found during probing. DHCP just worked. All good.

Infrastructure changes

With a new NIC comes a new MAC address. You may want to alter any filtering you have on your WAP.

In addition, I had to alter my /usr/local/etc/dhcpd.conf because of the way I handed out
IP addresses under Windows. Here is what I had:

# windows XP
host laptop {
    hardware ethernet 00:94:02:27:67:32;
    fixed-address laptop.wifi.example.org;
}

I added a new line for the additional NIC:

# windows XP
host laptop {
    hardware ethernet 00:94:02:27:67:32;
    hardware ethernet 00:19:ae:06:45:23;
    fixed-address laptop.wifi.example.org;
}

The entry I used for FreeBSD did not require modification:

host laptop.example.org {
option dhcp-client-identifier “laptop.example.org”;
fixed-address laptop.wifi.example.org;
}

This is because my /etc/dhclient.conf contains:

send dhcp-client-identifier "laptop.example.org";

There is no such setting for Windows as far as I know.

Much happier

I’m much happier with ath(4) than I was with was with ipw(4). If anyone wishes to work on ipw(4) and
needs a NIC, I’ll gladly loan it out in the hopes of providing others with a better wifi experience.

Leave a Comment

Scroll to Top