Ndiswrapper howto
From openSUSE
| This article or section should be merged with Ndiswrapper . You are welcome to edit this article, but please follow discussion about the way to complete the merge as soon as possible. |
Contents |
The Target
You own a PC, most probably a notebook, with a built-in WLan card, and you don't find any OpenSource drivers?
Then you have the choice to buy an external, preferable USB stick, or get it run via the ndiswrapper, by using the Windows drivers.
Be warned! You lose your ability to report (kernel) bugs, as the ndiswrapper is a weird thing and is able to change anything within the kernel! Nobody can really know, what any such driver can do or if it can harm the kernel. But I'm running it and don't have any strange results yet. So, there is hope... :)
Package installation
Be sure that your card is not supported by any other packages. The package wlan-kmp-default (or wlan-kmp-bigsmp or ... -- depends on your kernel) contains some wireless drivers. You're lucky, and don't have to use the ndiswrapper then.
Open YaST and install the software packages ndiswrapper and ndiswrapper-kmp-something (something depends on your kernel, usually: ndiswrapper-kmp-default) via: Software → Software Management
Hint: You might want to install package wireless-tools additionally, as you might need them if the card is running. :)
Hint: You can type the following command to figure out which type of kernel it is as well as the version:
# uname -r
Driver installation
- Find out the wireless controller you have, do (as root in an terminal window,
such as "xterm" -- Note: the # sign is only a common notice to be root, don't type
it in):
# lspci -v | less
In my case, I found this relevant line:02:04.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
- Look through the WINDOWS setup logfiles (in my case: less /windows/c/WINDOWS/setupapi.log), and find out which driver is installed (by Windows). Maybe you want to search for WLAN lines? :-) I found this suspicious line:
#I022 Found "PCI\VEN_14E4&DEV_4318&SUBSYS_1356103C" in C:\SWSetup\WLAN\bcmwl5a.inf; Device: "Broadcom 802.11b/g WLAN"; Driver: "Broadcom 802.11b/g WLAN"; Provider: "Broadcom"; Mfg: "Broadcom"; Section name: "BCM43XG2".
- Install the appropriate Windows driver. :) In above example:
# ndiswrapper -i /windows/c/SwSetup/WLAN/bcmwl5a.inf
- Check, if the ndiswrapper has installed the driver:
# ndiswrapper -l Installed drivers: bcmwl5a driver installed, hardware present
- Now you need to activate driver:
# modprobe ndiswrapper
- And at last restart network:
# rcnetwork restart
If there is a "fuzzy driver" or "hardware not present", you probably have a bad driver, and it doesn't work. Maybe you want to retry with a different, or you have to give up. Linksys, Belkin, and occasionally D-Link have a different chip on the card, generate problems and then a "fuzzy" driver is the result. Wiki of ndiswrapper project might help you then.
Note: If you downloaded the driver off the internet and can't get it to work, try to use the drivers on the CD that came with the wireless device(if one came at all).
Otherwise: Great! First step is done.
Network configuration
Having a driver, doesn't mean, that your card is running. :) You need additionally to configure the network things for your card.
There are many possible configurations possible. I'm explaining only a typical example: DHCP, and managed via (KDE) network-manager.
- Start YaST's network configuration: Network Devices → Network Card
- Choose: "User controlled with Network Manager" and then "Next"
- Choose: "Add" button in lower half
- Choose:
- Device Type: "Wireless"
- Configuration Name: "0" (or whatever :))
- Hardware Configuration Name: "static-0"
- Module Name: "ndiswrapper"
- Options: "" (keep empty)
- Do not select "PCMCIA" nor "USB"
- ... and finally "Next"
- On next screen select DHCP in "Hostname and Name Server" and in "Advanced → DHCP Options", then click "Next"
- In "Wireless Network Card Configuration"-window choose (= keep the defaults):
- Operation Mode: "Managed"
- Network Name (ESSID): "" (keep empty)
- Authentication Mode: "Open"
- Input Type: "Passphrase"
- Encryption Key: "" (keep empty)
- .. . and finally "Next"
- the kwallet manager might open -- give him your password and ignore this opening (it doesn't do anything)
- ignore the warning that "Encryption is doing on own risk"
- back in "Netwark Card Configuration Overview" choose "Next"
Your card is configured.
You might now open the Network Manager in your taskbar (kicker) and select one of the found networks. Disable your wire connection (if connected), and access the internet.
If your SSID (wireless network name) is not broadcasted, you can select an own, specific one in the Network Manager.
Finished. :)
Klaus Singvogel --Kssingvo 14:57, 18 May 2006 (UTC)
Connection problems
Once you have ndiswrapper working you will see that the LED for the wireless card lights up with network start i.e. at boot or in response to the command issued as root:
$ rcnetwork restart
You will be able to see the available networks via the KDE network manager or by issuing the command issued as root:
$sudo iwlist wlan0 scan
So you find your preferred network and attempt to connect. However, there are few pitfalls to avoid...
The release notes for openSUSE 11.1 state that there is no out of the box support for channels 12-14 inclusive. By default, the WLAN channels 12, 13, and 14 are disabled because it is not allowed to use these channels everywhere. If you want to use them in your region, see http://en.opensuse.org/Tracking_down_wireless_problems for more information.
So make sure your router isn't using these channels unless you have manually enabled them as described in the URL above.
I have also found problems with channels 1,2 and 3 on my Netgear DG834PN and with a Thompson Speedtouch from BeThere. I found that connection was near impossible with WPA-PSK enabled and really unreliable without encryption. The signal kept dropping and habitually fell back to 11Kbps.
What I would recommend is to disable all security. Place the laptop physically next to the router and check the reported signal strength. Channels with problems will be reported as less than 100%. For example, I found with my laptop, that channel 1 only reported 70% when the laptop and router were within millimeters of one another.
Once you have a channel that reports 100% try connecting. Only once the connection is working reliably without security should you enable it, for say WPA-PSK.
If on attempt to connect with WPA-PSK you get a message like this in /var/log/NetworkManager:
Nov 4 17:50:08 acer NetworkManager: <WARN> get_secrets_cb(): Couldn't get connection secrets: applet-device-wifi.c.1522 (get_secrets_dialog_response_cb):canceled.
Then I recommend trying another channel. I have had good results using channel 4.
Matteus Blanc -- 12:40, 23 December 2008 (UTC)

