Well, March fool actually, although it was rapidly approaching the 1st of April when this came about. I finally got around to getting a TFT monitor for my PC and setting it all up. It has always been connected to our router by a considerable length of cat5, although it's had a wireless network card in it since the girls' old PCs died and I harvested their innards. I'd never got it to work with Linux, and since it didn't work with Windows XP either, I assumed it was duff, but never actually took it out.
When we moved I knew it was going to be a tricky job to get that PC on the network. It would involve at least some DIY, drilling holes in walls and suchlike, to get a cable through to where it needed to be (not that I haven't drilled holes in walls for other reasons, but I like to avoid it wherever possible). I toyed with the idea of powerline networking, but didn't really want to shell out the money for new kit when I knew the existing hardware ought to work fine, if holes were drilled in walls and I just got my finger out and did it. I didn't really think about the wireless card until I was plugging the new monitor in and I spotted the aerial coming out the back.
I'd tried to install the open source driver previously, but I couldn't get it to do anything useful so I gave up, knowing that I had good old cable to fall back on. I decided to give it another crack, and really try to get it working properly this time.
Step one went well. I successfully compiled the driver against my kernel. However it requires certain binary firmware files to work and the ones I had didn't seem to work. I cast about on the internet (on my laptop, obviously) and worked out why: The naming convention for the firmware files was incorrect. Still not trusting the old files, which had been grabbed from the old Windows driver CD, I downloaded some new ones.
The chipset of the card has been used in various different types of device, PCI, Cardbus, USB, so the driver covers them all, and the firmware has to be tailored to suit each type. Some files are used for PCI, an additional one is used for Cardbus, and a completely different one goes with USB. Fair enough, I thought, I've got a PCI card, let's stick that firmware in. So I did, and it didn't work. Oh, the device was recognised (something I hadn't managed before) and the module loaded, but I couldn't connect to anything. I spent a couple of hours ferreting around, changing settings and anxiously checking whether or not I could get a DHCP lease. I got nowhere, so I went downstairs, sat in front of the telly and gave up.
That (as always) was when it hit me. I suddenly had a picture in my mind of what the actual card looked like, and it was something of a revelation. I went back up to the computer, ran lspci and lo and behold I was right. Some messing with the firmware later and suddenly everything burst into life.
See, the PCI card I've got looks a bit funny. It's not a bare board with components on it, it's a board with a little, silver, familiarly shaped box on it. The box is exactly the size and shape of a PCMCIA (Cardbus) card. It's soldered to the PCI board, but that board is doing nothing but present what's essentially a laptop wireless card to the PCI bus. lspci confirmed it, the version of the chipset I had was meant for Cardbus cards. Adding the additional firmware for Cardbus cards solved the problem. It worked flawlessly first time, and there was much rejoicing.
Incidentally, the card had been deemed broken for a long time, and I think I've even thrown the other one we had away, because it didn't work at all with the Windows drivers. I discovered, in my research, that the card I had would work perfectly well with Windows XP, but not with Windows XP Service Pack 2. The drivers were never updated and the company went out of business, but thanks to some dedicated open source developer types I've still got a working wireless card, even if it won't work with Windows.
When we moved I knew it was going to be a tricky job to get that PC on the network. It would involve at least some DIY, drilling holes in walls and suchlike, to get a cable through to where it needed to be (not that I haven't drilled holes in walls for other reasons, but I like to avoid it wherever possible). I toyed with the idea of powerline networking, but didn't really want to shell out the money for new kit when I knew the existing hardware ought to work fine, if holes were drilled in walls and I just got my finger out and did it. I didn't really think about the wireless card until I was plugging the new monitor in and I spotted the aerial coming out the back.
I'd tried to install the open source driver previously, but I couldn't get it to do anything useful so I gave up, knowing that I had good old cable to fall back on. I decided to give it another crack, and really try to get it working properly this time.
Step one went well. I successfully compiled the driver against my kernel. However it requires certain binary firmware files to work and the ones I had didn't seem to work. I cast about on the internet (on my laptop, obviously) and worked out why: The naming convention for the firmware files was incorrect. Still not trusting the old files, which had been grabbed from the old Windows driver CD, I downloaded some new ones.
The chipset of the card has been used in various different types of device, PCI, Cardbus, USB, so the driver covers them all, and the firmware has to be tailored to suit each type. Some files are used for PCI, an additional one is used for Cardbus, and a completely different one goes with USB. Fair enough, I thought, I've got a PCI card, let's stick that firmware in. So I did, and it didn't work. Oh, the device was recognised (something I hadn't managed before) and the module loaded, but I couldn't connect to anything. I spent a couple of hours ferreting around, changing settings and anxiously checking whether or not I could get a DHCP lease. I got nowhere, so I went downstairs, sat in front of the telly and gave up.
That (as always) was when it hit me. I suddenly had a picture in my mind of what the actual card looked like, and it was something of a revelation. I went back up to the computer, ran lspci and lo and behold I was right. Some messing with the firmware later and suddenly everything burst into life.
See, the PCI card I've got looks a bit funny. It's not a bare board with components on it, it's a board with a little, silver, familiarly shaped box on it. The box is exactly the size and shape of a PCMCIA (Cardbus) card. It's soldered to the PCI board, but that board is doing nothing but present what's essentially a laptop wireless card to the PCI bus. lspci confirmed it, the version of the chipset I had was meant for Cardbus cards. Adding the additional firmware for Cardbus cards solved the problem. It worked flawlessly first time, and there was much rejoicing.
Incidentally, the card had been deemed broken for a long time, and I think I've even thrown the other one we had away, because it didn't work at all with the Windows drivers. I discovered, in my research, that the card I had would work perfectly well with Windows XP, but not with Windows XP Service Pack 2. The drivers were never updated and the company went out of business, but thanks to some dedicated open source developer types I've still got a working wireless card, even if it won't work with Windows.