Installing and configuring ndiswrapper on SLED 11
This document (7002752) is provided subject to the disclaimer at the end of this document.
Environment
openSUSE 11 and 11.1
Situation
Resolution
In the following solution we will be using a Dell D600 laptop which has a broadcom wireless chipset. Therefore the individual examples given may reflect files and results specific to this implementation, however you should be able to apply the same concept to the workstation and driver that you are using.
- Download your windows driver to some place on your Linux
desktop. The driver files need to be the .sys and .inf files.
- Open YaST and select Software Management under the Software group. On the Software Manger screen enter "ndiswrapper" in the package search field as show in this screenshot:
- Using Ctrl-Click select the ndiswrapper and ndiswrapper-kmp package that is appropriate for your kernel. In this case the "pae" kernel is installed. If you are unsure of which kernel you have installed just open a terminal window (right-click on the desktop and select "Open in terminal") and enter the command "uname -r". You will see your kernel version followed by "-pae" or "-default". Once you have the packages selected click on the Install button and then on Apply. The packages will be installed from the installation source. If you installed from DVD you will be asked to place the DVD in the drive.
Note: When installing the ndiswrapper packages a message will be displayed indicating that there is no support for ndiswrapper or the configuration associated with it. We provide it as a convenience but cannot guarantee it will work with your Windows drivers. - Once the software has been installed, open a terminal and su to root.
#su
Password:
Change to the directory where the Windows driver files are located. This will include at least one .inf file which is the file that you will identify for the installation. In some cases there may be multiple .inf files. These are for different versions of Windows. You may need to try each to find the one that works for your system. Be sure to remove the installed one before installing another.#cd wireless/
Install the driver by typing ndiswrapper -i driver.inf where driver.inf is the actual name of the .inf file.#ndiswrapper -i bcmwl5a.inf
Installing bcmwl5a
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
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
Note: If you receive the error message "couldn't copy driver.inf at /usr/sbin/ndiswrapper line 135" then you have either typed in the wrong driver name or put in the wrong path. - To load the module type modprobe ndiswrapper.
#modprobe ndiswrapper
Verify that it loaded properly by running "ndiswrapper -l" to "list" the installed driver. You should see something similar to this:
<driver-name> : driver installed
device (xxxx:xxxx) present (alternate driver: <native-driver-name>)
If ndiswrapper indicates that the driver is invalid or hardware is not found then you will need to uninstall the driver and try a different one as described below under #6.
If it is installed okay and working then you should see your wireless options show up under the NetworkManager. For example, if you right click on your NetworkManager icon you will see that Enable Wireless is checked. Left clicking the NetworkManager icon should start showing detected networks.
You can also verify that the module loaded properly by looking at the last entries to the /var/log/messages file by running "cat /var/log/messages" or using your favorite editor. If the Windows driver did not load properly or find the associated hardware you will see ndiswrapper messages indicating the problem. - If you need to try a different driver or .inf file (in the case of multiple .inf files) be sure to remove the currently installed driver before installing a different one. Using the "ndiswrapper -l" command to list the driver name you are then ready to remove the driver by running "ndiswrapper -r <driverName>". You are then ready to install the new one with the "ndiswrapper -i <driver.inf>" command.
- When you have verified that it is working create an alias for the file by typing ndiswrapper -m.
#ndiswrapper -m
Adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper - When you displayed the driver with the command "ndiswrapper -l" the <native-driver-name> (if displayed) is the Linux driver that is being overridden by ndiswrapper. To make sure this native driver does not load and potentially cause a conflict with the Windows driver through ndiswrapper you will want to add this driver to the "blacklist" so the system will know not to load it.
Edit the file "/etc/modprobe.d/blacklist" and add a line that reads:
blacklist <native-driver-name>
Of course replace <native-driver-name> with the exact name of the driver as indicated in the "ndiswrapper -l" command.
Additional Information
http://en.opensuse.org/Ndiswrapper
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:7002752
- Creation Date: 17-Mar-2009
- Modified Date:28-Sep-2022
-
- SUSE Linux Enterprise Desktop
- SUSE Linux Enterprise Desktop
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com