Install Notes: WPC54G (ndiswrapper) on Fedora Core 4/5 (FC4/FC5)
November 29th, 2005
The first thing you'll need to do, is download the CORRECT Windows driver for your card from linksys.com. There are various versions for the card which will be displayed on the back of the card. If you aren't sure, then you'll want to use the drivers from the CD-ROM that came with the card. In my case, the card I am using is v3 and the driver I downloaded was v3.100.64.0a. The file was: WPC54G_driver_utility_v3%5B1%5D.1.zip. If you have downloaded the drivers, you'll need to extract the files to some temporary directory (I just did it from my desktop). If you're using the CD-ROM, you can just do it straight from the CD.
Identifying the Card
The first thing I did, was slap the card into the PCMCIA slot to make sure that something was being detected--even if it wasn't "working". This step is not really necessary, but doesn't hurt to ensure that your card is actually being "seen". I issued the following command:
/sbin/lspci
The result of that command was a listing of many devices, including my already working 802.11 card--but I was looking for this card. The listing that caught my attention was:
07:00.0 Network controller: Broadcom Corporation: Unknown device 4318 (rev 02)
The "Unknown device" was the key. Plus, all the others were ruled out by process of elimination. By then issuing the lspci command again, this time with the "show numeric id's" parameter, I was able to look up my card's code:
/sbin/lcpsi -n
07:00.0 Class 0280: 14e4:4318 (rev 02)
Now, from this code, I was able to "identify" my card at the ndiswrapper website using the Linux PCI ID Repository. In my case:
14e4=Broadcom Corporation
4318=BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller
Initially I was concerned as there is nothing in that id that says anything about linksys or WPC54G. However, knowing how corporations work, I decided not to worry. A quick google search for "WPC54G BCM4318" confirmed my suspicions that for my purposes, they were one and the same.
Installing ndiswrapper Using YUM
I'm using yum to install my ndiswrapper because it's easy. If you're looking to compile the kernel module from source, this is not the article you want to read. The important thing here, is to realize that the ndiswrapper is a kernel module. What that means for us in this circumstance, being that we're using RPMs, is that we use the right version of the kernel module for our version of the kernel. This is especially true when using yum to update packages, as a kernel RPM may be available before the kernel module. I'll talk more about that at the end of the article.
If you don't know what verison of kernel you are using, issue this command:
uname -r
At the time I took these notes down, I was using version 2.6.13-1.1526_FC4. I have since upgraded several times. In any case, that same uname command is what we'll use with yum to ensure we get the right version. I have configured yum as is discussed at the Unofficial Fedora FAQ. Here's the command to install ndiswrapper:
yum --enablerepo=livna install ndiswrapper kernel-module-ndiswrapper-$(uname -r)
As you can see, I'm enabling the livna repo, and I'm downloading 2 RPM packages: ndiswrapper and kernel-module-ndiswrapper-2.6.13-1.1526_FC4. Now you see how that uname command came in handy there. You MUST use the kernel-module-ndiswrapper for your kernel version. Yum should be able to download and install the 2 packages. If when yum gets going, it cannot find the kernel-module-ndiswrapper for your kernel (only 1 package queued for installation), you're going to first have to upgrade to a kernel which does have an ndiswrapper available for it. To see which ones are available, issue this command:
yum --enablerepo=livna list kernel-module-ndiswrapper*
Once you have those 3 packages installed, you're just about in business.
FC5 NOTE: On my fresh installation of FC5, the kernel version is 2.6.15-1.2054_FC5. The packages for ndiswrapper and the kernel module are still from livna. The livna repository can be setup for yum using:
rpm -ivh http://rpm.livna.org/livna-release5.rpm
Then you can install them with yum as shown below:
yum install kmod-ndiswrapper-1.10-3.2.6.15_1.2054_FC5 ndiswrapper-1.10-2.lvn5
Loading the Driver
You must be root to issue all of these commands, so if you are not already root, become root by issuing the su command. Next, navigate through your CD-ROM (or the folder in which you extracted the driver files) and find the inf file for the driver. In my case, the file is LSBCMNDS.inf. We install it using the following command:
/usr/sbin/ndiswrapper -i LSBCMNDS.inf
This command will result in output that looks a little something like this:
Installing lsbcmnds Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2
Check that it was installed by listing the ndiswrapper drivers:
/usr/sbin/ndiswrapper -l
Which we're looking for something like:
Installed ndis drivers: lsbcmnds driver present, hardware present
Add the kernel module:
/sbin/modprobe ndiswrapper
Make sure it's loaded by issuing the dmesg command and searching for ndiswrapper messages:
dmesg | grep ndiswrapper
Which in my case, output:
ndiswrapper version 1.7 loaded (preempt=no,smp=no) ndiswrapper: driver lsbcmnds () loaded ndiswrapper: using irq 10 wlan0: ndiswrapper ethernet device 00:14:bf:41:11:de using driver lsbcmnds, 14E4:4318:1737:0048.5.conf
Yay, we're lookin' good. Got that card all dialed in as wlan0. Now just add it to modprobe.conf:
/usr/sbin/ndiswrapper -m
Which will output something like:
Adding "alias wlan0 ndiswrapper" to /etc/modprobe.conf
FC5 NOTE: When performing this step, the versions used in FC5 result in an updated to a /etc/modprobe.d/ndiswrapper which will not allow the device to be listed in the internet configuration as described below. My fix for this was to manually insert the following line into /etc/modprobe.conf
alias wlan0 ndiswrapper
And there it is. Piece of cake. Now, the only thing left you might want to do, if using Gnome like I am, add the connection using the nice little GUI interface. I don't feel like walking you through that-- I think it's somewhat self-explanitory. From the Gnome menu: System Tools -> Internet Configuration Wizard.
You could also use the command utilities to show the current status of your wireless card...
/sbin/iwconfig wlan0
... or to see the available networks...
/sbin/iwlist wlan0 scanning
Categories
Popular Posts
RSS Feeds
Archives
October 16th, 2007 at 6:25 pm
/sbin/lcpsi -n is a typo, in case I'm not the only one cutting and pasting :)