Previous: Linux Compatible PIC Programmers
Next: Installing the GNU tools (avr-gcc) for AVRs

Install Notes: WPC54G (ndiswrapper) on Fedora Core 4/5 (FC4/FC5)

November 29th, 2005

Linksys WPC54G WiFi PCMCIA Card in Linux

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
Linux

Related Posts


Technorati Tags

One Response to “Install Notes: WPC54G (ndiswrapper) on Fedora Core 4/5 (FC4/FC5)”

RSS Subscription Comments RSS Feed

  1. Andrew Says:

    /sbin/lcpsi -n is a typo, in case I'm not the only one cutting and pasting :)

Leave a Reply