Background
Recently I was asked by a friend to try to get a new 802.11g wireless card that is a Belkin F5D7000 to work on a Fedora Core 1 Linux system. The card is based on a Broadcom BCM4306/BCM2050 chipset. Its Vendor ID is 14E4 and Device ID is 4320. This information was gleaned from the system data available in Windows XP itself and is of use later on. The Problem What I didn't realise was that, while wireless network cards and their software drivers are readily available for the various versions of Microsoft Windows, the same is not true for millions of Linux users. Manufacturers are unwilling to release software drivers for some of their cards in a Linux environment. Whether there is a security issue or whether the problem is one of licensing is hard to determine as the manufacturers appear reluctant to discuss the matter. Neither Belkin nor Broadcom provide drivers for this card under Linux. Solutions After a search of the web, I found two sites that looked like providing a solution. Both use a clever method of creating an interface between the native Linux operating system and the Microsoft drivers enabling the wireless card to function in a Linux environment. Linuxant Company The Linuxant Company whose address is http://www.linuxant.com/company/ will let you try out its software for 30 days and then requires US$20 per year licence. The installation was straightforward and the method worked first time. This package appeared to be easier to install than the next one. NdisWrapper Project There is a similar solution called the NdisWrapper Project whose author's main objective is to get unsupported cards working in Linux. It is available from http://ndiswrapper.sourceforge.net/ which worked just as well and is free to boot, although it is not as straightforward to install as the previous shareware solution or so it seemed. A quick check based on the Vendor ID and the Device ID listed above for the Belkin card showed that it is supported by the NdisWrapper project. The site lists other cards or chipsets that may work. The rest of this article refers to how the card came to work on a Fedora Core 1 Linux system installed from scratch with no applied patches and/or updates other than the operating system itself. Method It is difficult to know the level of detail to include or to exclude in such an exercise without alienating more advanced users while trying not to bore less experienced ones with meaningless jargon. All references from here on will be to Fedora Core 1 Linux, however the method and the steps in general apply to other flavours of Linux as far as my limited knowledge of different versions is concerned. This method worked for me, but no assurance can be given that it will work for everyone. There are so many factors that can affect the behaviour of systems such as patches, settings and the level of user expertise. Getting the Software There are three components to the software needed, namely the kernel, the NdisWrapper modules, and the Microsoft drivers. The latest kernel (Linux operating system) has to be downloaded, installed and running before the NdisWrapper modules. It is necessary to check the site http://dag.wieers.com/packages/kernel-module-ndiswrapper/ to determine the versions of the kernel that the NdisWrapper modules are compiled against. Of course my friend wanted all the latest versions of everything, so I searched the site for the version of the file that started with "kernel-module-ndiswrapper-" appropriately named: kernel-module-ndiswrapper-0.7-1_2.4.22_1.2188.nptl.rhfc1.dag.i386.rpm where the 0.7-1 refers to the version number of this file, and 2.4.22_1.2188 refers to the version number of the kernel it was compiled against. I downloaded kernel version 2.4.22_1.2188 from this site http://download.fedora.redhat.com/pub/fedora/linux/core/updates/1/i386/ and retrieved two required NdisWrapper packages named: ndiswrapper-utils-0.7-1.rhfc1.dag.i386.rpm kernel-module-ndiswrapper-0.7-1_2.4.22_1.2188.nptl.rhfc1.dag.i386.rpm that are compiled against this Fedora kernel from http://dag.wieers.com/packages/kernel-module-ndiswrapper/ Note that the NdisWrapper package version numbers must be the same, 0.7-1 in this case. Also note that the files come in different flavours for instance "athlon.rpm", "i686.rpm", "i386.rpm"; the identifier before the .rpm refers to the machine architecture. If you aren't sure, the safest is to pick the files ending in "i386.rpm" which should run on most 'modern' CPUs. Not many people have the newer 64 bit processors yet. I found the final component of the software on the CD that came with the wireless card, and copied these two Microsoft driver files to my home directory: bcmwl5.inf bcmwl5.sys Installing the Software Once again there were three steps involved, namely installing the kernel, the NdisWrapper modules, and finally the Microsoft drivers. I installed the new kernel with the following command in a Linux terminal session with root privileges: rpm -i kernel-2.4.22-1.2188.nptl.i386.rpm This simply means that we are executing RedHat Package Manager (RPM), and the -i parameter means that this new kernel is installed without overriding the old one so that you can load the old kernel if this new version has problems or is faulty for some reason. It's just safe practice. The kernel installed with no complaints from the package manager, and I shut
down Linux and reloaded on this new kernel. This was to prove that the new
operating system can load and run, and it was also a prerequisite for the
wireless software installed next using the following commands in a terminal
session with root privileges:
As the probe was able to identify the card, the MAC address appeared in the
window. If the MAC address did not appear then obviously something would have
been malfunctioning. It could be a software or even a hardware problem and may
be difficult to track down.
After a general reload of Linux the wireless card was detected and correctly identified at boot time. In my friend's case the card has worked flawlessly since installation and calling the Linux "iwconfig" command showed the following set of statistics for his card (See Figure 8).
The method of using available Microsoft drivers within Linux may not seem "user
friendly" to some or it may even be seen as a bit experimental, but that is part
of the "fun" for fiddling penguins in the Linux community. The wireless card now
works under Linux, which was after all, the main goal of this exercise.
Reprinted from the July 2004 issue of PC Update, the magazine of Melbourne PC User Group, Australia
|
|||||||||||||||||||||||