Wireless, Where to Begin (Using Ndiswrapper)
by the PCLinuxOS Community @ Large
Edited by: Joble
Before we begin, here are some terms you should know:
- KCC (KDE Control Panel)
- PCC (PCLinuxOS Control Panel)
- Synaptic Package Manager
- Terminal is the black computer screen in the taskbar >_ .
This article is only about getting wireless working, it does not cover talking to your router or encryption.
A little about me: I didn't author any of this information. I have only been using PCLinuxOS for about 4 months. It took a lot of research to get my wireless working, pieces of information gathered from many different forum searches. I gathered all the information I could and put out a call to help, which was answered in force in the Forum. This article is a tribute to the helpful nature of the PCLinuxOS Community.
If you are buying a new wireless card, or just want to see if there is a Linux driver for your chipset, check the hardware lists. PCLinuxOS List:
The most complete wireless hardware list I have seen so far is:
I can't speak for it's accuracy, I looked up my card and the results are pretty accurate, giving a yellow rating, which is about right in my opinion. The link details the bcm43xx Linux driver, which does not work for this card:
802.11g F5D7011man: 1799 dev: 7011CardbusBroadcomBcm43xxyellow http://bcm43xx.berlios.de/
These instructions will work for a majority of situations. If you really want to be sure, before you do these steps, you can skip down to 3: Determining Your Chipset and search for your chipset in the PCLinuxOS Forum:
If there is an answer specific to your chipset, it has probably already been discussed. The search bar is in the upper right corner.
- Troubleshooting Wireless Issues
- If you dual boot with windows, make sure you have exited windows completely. Hibernating out of windows does unpredictable things to your system. For me, it makes my wireless unusable in PCLinuxOS, for others it doesn't.
- Make sure your wireless device is plugged in at boot, if it has a switch, make sure it is on or else there's little chance it will be detected and show up in your hardware list, plus if it wasn't, then the default driver might just work (problem solved).
- You cannot use a wired and wireless connection at the same time. At some point you're going to have to unplug that wire and fly solo. If that works (problem solved).
- Driver issues. If I addressed this I could fill a book, this is why you really should search the forum for your chipset before continuing these instructions.
Quote from: travisn000
(1) Before jumping right into ndiswrapper, it might be worth checking hardware compatibility lists / Linux driver lists for the chipset being used. If I had done this, I probably could have got away with simply removing/blacklisting the incorrect driver, loading the correct Linux driver, and saving the configuration.
If you search and don't find anything, it means one of three things:
- the default driver works,
- ndiswrapper works,
- you're the only one who has that and you will have to write instructions for the rest of us.
In any case, if a search doesn't reveal anything significant, then continuing with these instructions is your best course of action.
- Finding your drivers
If you get this far without a resolution, then the default PCLinuxOS driver is not working for you. This section covers the use of NDISWRAPPER. Wherever drivers are mentioned, I am referring to Windows XP drivers.
- If your wireless card came with a CD, your drivers are on it, mine were bcmwl5.inf and bcmwl5.sys. You need both. When setting up ndiswrapper, point it to the .inf file on the CD. If you're anything like me, it won't be that easy. If you find your drivers on the CD, go further down to the bold instructions for PCC. Otherwise, continue reading.
- In WindowsXP:
- "Start -> Control Panel -> System -> Hardware (tab) -> Device Manager"
- Hit the "+" at Network adapters, and find the wireless adapter
- Right click on your adapter, select Properties
- Select the Driver tab
- Select Driver Details
- Open My Computer and search for the filename from your driver details, in this case search for bcmwl5.*
- Copy all listed files to c:\wireless so you can find them easily. Then log off and exit windows, hibernating out of your windows session could make your windows partition inaccessible to PCLinuxOS until you go back in and exit normally.
- If you find your windows drivers, then go further down to the bold instructions for PCC. Otherwise, continue reading.
- Finding your drivers continued (Determining your chipset)
Depends on the chipset, you won't know the drivers until you know the chipset. Others here can tell you how to do that, but only you can find it. As far as I know, we don't make house calls.
- "PCC -> Hardware -> Look at and configure the hardware."
- Scroll down the detected hardware list until you find your card.
Mine says "BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller" and it's listed under "Ethernetcard". BCM doesn't stand for Belkin, it stands for Broadcom, and BCM4318 is my chipset. It could also show up in "network adapters", or "other /unknown", and I read one case where it showed up in scanners. If you click on it, you can see what "Module" is loaded. When visiting the Forum with a problem, you may be asked to provide that information.
If it is not a Broadcom chipset, it's going to take some research on your part to locate the correct driver. Search your chipset in the forums, chances are someone else had the same problem, if that fails, search your chipset on Google.Yeah, try it, search for "bcm4318 Linux" on Google and see how many others have had the same problem.
If it is a BCM4318 or any Broadcom chipset, you can try the ndiswrapper drivers in Synaptic, bcmwl5 is one and bcmwl5a is the other, one of them should work, just get them (one at a time, try one, then the other) from Synaptic. Look for the .inf file in a subdirectory of /etc/ndiswrapper/ and continue with these instructions.
- Instructions for PCC
- Once you find your drivers (.inf, .sys, and optionally .cat, .bin) copy them to a Linux directory where you can point ndiswrapper to find them.
- "PCC -> Network -> Set up a new network interface -> Wireless"
- Follow the on screen prompts for ndiswrapper using the .inf file.
- When you see the message below, make note of the driver, this is the one that needs to be blacklisted during the last step. In this case it was bcm43xx. I run PCC, go into the hardware setup, click on the Wireless interface, and change it from the Broadcomm Driver to the Windows ndiswrapper driver. It opens a window that says:
Warning: The selected device has already been configured with the bcm43xx driver. Do you really want to use a ndiswrapper driver?
- Click Yes. This gives an error message "Unable to find the ndiswrapper interface"
- Open a Terminal session by left clicking on the terminal icon in the Panel or by: "Main Menu -> System -> Terminals -> Konsole"
- Type su, enter your password and then hit Enter.
- Type "rmmod (driver from the message)" and Enter (without the quotes). This releases the default driver allowing ndiswrapper to use the adapter.
- Go back to the Control Centre and click OK on the error message and finish the configuration menu.
- Open a Terminal session, type su, enter your password (or go to your previous terminal, if it's still open).
- Then type "ndiswrapper -ma" (without the quotes). This will make ndiswrapper the default driver when you reboot your machine.
At this point your wireless device should be on, lights, if there are any, should be visible. You're almost finished.
- Then, after setting up ndiswrapper you need to add "blacklist bcm43xx" or whatever the default driver was that wasn't working to etc/modprobe.d/blacklist to prevent this module being loaded every time you boot.
- Open "Menu -> System -> File Tools -> File Manager - Super User Mode" (enter your root password)
- Navigate to /etc/modprobe.d/
- Right click on blacklist and open with KWrite
- Add "blacklist bcm43xx" to the bottom of the list and reboot. If ndiswrapper is set up correctly your wireless should start.
- You may still have to go into PCC -> Network -> Wireless and actually connect to your network.
- If after this your wireless device still isn't flashing/beeping/or bouncing around your desk as it should, then open a terminal window and type: ndiswrapper -l (lowercase L).
If running this shows "alternate drivers" (the drivers Linux tried loading before you ran ndiswrapper), these are the ones that need to be blacklisted. Note that I ran this command and it showed the driver that I already blacklisted. You need only worry about any additional drivers you have not already blacklisted. Add them to the blacklist file and reboot the computer.
- Wireless & Network Tools
- For a Wireless only network my favorite is KWiFiManager which shows a signal strength applet in the taskbar. It can be downloaded via the Synaptic package manager.
- For multiple networks, I like Knemo, which will put a separate icon in the taskbar for each network and show you which one is active, and it can be used with KWiFiManager. This one is good for trouble shooting conflicting networks. It can be downloaded via the Synaptic package manager.
- The default network manager is NetApplet which is also very capable, if it meets your needs you can load it from:
"Main Menu -> System -> Monitoring -> NetApplet"
- Updating Your Kernel
If you use ndiswrapper, and update your kernel, make sure you also update ndiswrapper if it is available.
Quote from Cobbydaler:
ndiswrapper should pull in the dkms-ndiswrapper package when installed from Synaptic. Then when you install a new kernel, make sure the dkms service is set to start at boot in "PCC -> System -> Enable or disable the system services". Ndiswrapper will then be rebuilt against the new kernel on boot.
- Getting More Help
If these instructions do not work for you and you need specialized assistance then you can ask for help in the Forum:
Please search the Forum for your chipset first, and list the results of these root terminal commands when posting wireless questions:
lspci -v ifconfig iwconfig
See you at the Forum!