Need help with ndiswrapper!

I have installed openSUSE 11.0 on my desktop computer, but I’m struggling with my wireless configuration. I’m relatively new to Linux and I would appreciate some expert help.
My hardware description:

MSI K7T266 Pro2-RU mainboard
AMD Athlon 1.4GHz processor
SpeedTouch 120 USB wireless adapter

Let me explain what I have done so far. Since I was unable to find any Linux drivers for my wireless adapter, I decided to configure ndiswrapper to use Windows drivers.
The following packages are installed on my system:

ndiswrapper
ndiswrapper-kmp-default
wireless-tools

Version numbers and other details on the installed packages can be found here: http://home.tiscali.nl/chaos_and_order.com/openSuSE/ndiswrapper/zypper_ndiswrapper_wireless.txt
By the way, ndiswrapper-kmp-pae and ndiswrapper-kmp-xen packages are not installed. I suppose it is not required since

user@linux-c48j:~> uname -r
2.6.25.5-1.1-default

There is a following USB wireless adapter present on my system :

user@linux-c48j:~> lsusb
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 003: ID 0d4e:1000 Agere Systems Netherland BV Wireless Card Model 0801
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Also dmesg shows that there is one Wireless USB Card present.

user@linux-c48j:~> dmesg

usb 3-2: new full speed USB device using ohci_hcd and address 3
usb 3-2: configuration #1 chosen from 1 choice
usb 3-2: New USB device found, idVendor=0d4e, idProduct=1000
usb 3-2: New USB device strings: Mfr=0, Product=1, SerialNumber=2
usb 3-2: Product: Wireless USB Card
usb 3-2: SerialNumber: 04UT23475295

Full listing of dmesg output is shown here: http://home.tiscali.nl/chaos_and_order.com/openSuSE/ndiswrapper/dmesg_output.txt
I have installed my Windows XP wireless driver that came with my hardware. (I’m using this driver in Windows XP with this very same hardware and it works fine.)
These are my Linux installation procedure steps:

user@linux-c48j:~> su
Password:
linux-c48j:/home/user # ndiswrapper -i wifi/WinXP/WLAGSXP.INF
installing wlagsxp …
linux-c48j:/home/user # ndiswrapper -l
wlagsxp : driver installed
device (0D4E:1000) present
linux-c48j:/home/user # ndiswrapper -m
adding “alias wlan0 ndiswrapper” to /etc/modprobe.d/ndiswrapper …
linux-c48j:/home/user # modprobe ndiswrapper
Segmentation fault
linux-c48j:/home/user # modprobe ndiswrapper


“NOTHING HAPPENS ANY MORE, THE TERMINAL IS NOT RESPONDING”

I do not understand what went wrong! After applying modprobe ndiswrapper nothing happens and the terminal freezes. From now on ndiswrapper -l also results in a frozen terminal, until the system is rebooted.
I have removed the driver using ndiswrapper -r wlagsxp and repeated the procedure (several times). Each time the result is same, frozen terminal.
However, after executing modprobe ndiswrapper the green led on the wireless adapter lights up.

I don’t know what to do next. Can someone give me a push in the right direction?

Thanks in advance,
Boris

blnl wrote:
> I do not understand what went wrong! After applying -modprobe
> ndiswrapper- nothing happens and the terminal freezes. From now on
> -ndiswrapper -l- also results in a frozen terminal, until the system is
> rebooted.

Any out-of-kernel driver can crash the system. You are getting the
equivalent of a “Blue-Screen-of-Death”, likely due to bugs in the
Windows driver. See if you can find a later version for your hardware.

Yes, it is possible for a buggy Windows driver to work perfectly well
with Windows and crash miserably with ndiswrapper due to different
memory layout, etc. For this reason, kernel developers refuse to work
on bug reports as long as any module that “taints” the kernel has been
loaded. Ndiswrapper is one such module.

Larry

Thanks Larry,
That is very unfortunate, since I can’t find any newer drivers for my wireless adapter.
Before I buy another wireless adapter, I would like to try something else. I have found a utility called driverloader from Linuxant. It is a compatibility-wrapper for standard Windows NDIS drivers. Maybe this one works better than ndiswrapper.

blnl wrote:
> Before I buy another wireless adapter, I would like to try something
> else. I have found a utility called -driverloader- from Linuxant. It is
> a compatibility-wrapper for standard Windows NDIS drivers. Maybe this
> one works better than -ndiswrapper-.

It may work, but I wouldn’t hold out much promise. IIRC, Linuxants
wrapper is mostly for modems. Certainly don’t spend any money on that
driver. You would be better off buying a compatible USB wireless device.

Larry

Thanks for the advice!
In the meantime I have solved the problem, and I’m not using any windows drivers at all.

To close this thread, I’ll give some directions to other Linux users that are searching for such driver.

The driver that worked for me is called orinoco_usb.
It can be downloaded here: http://orinoco.svn.sourceforge.net/viewvc/orinoco.tar.gz?view=tar
Detailed description of the installation steps can be found here: Lucid Tips » Wireless using W200 on openSUSE 11.0

Other useful links:
The Linux ORiNOCO Driver
Problem installing orinoco-0.15 driver. Help please!!! - Linux Forums

Unfortunately, I was not so lucky this time.

The wireless indeed works, but the system freezes after a few minutes. I believe this is related to the kernel configuration steps:

$ cd /lib/modules/$(uname -r)/build/
$ su
(root password)
$ cp /boot/config-$(uname -r) .config
$ make oldconfig
$ make prepare

There is also another procedure suggested at: Linux driver for Lucent/Agere ORiNOCO USB devices

$ cd /lib/modules/$(uname -r)/
$ rm build
$ ln -s source build
$ cd build/
$ su
(root password)
$ make mrproper
$ make cloneconfig
$ make prepare-all

Important: You must change

make prepare-all

to

make prepare scripts

**Does anyone know what is the essential difference between these two procedures?
**Or at least what is “make mrproper”, “make cloneconfig”,
“make oldconfig”
and “make prepare” doing?

By the way, I have posted a detailed question about this problem also at www.linuxforums.org/forum/wireless-internet

blnl wrote:
> Unfortunately, I was not so lucky this time.
>
> The wireless indeed works, but the system freezes after a few minutes.
> I believe this is related to the kernel configuration steps:
>
> Code:
> --------------------
> $ cd /lib/modules/$(uname -r)/build/
> $ su
> (root password)
> $ cp /boot/config-$(uname -r) .config
> $ make oldconfig
> $ make prepare
> --------------------
>
>
> There is also another procedure suggested at: ‘Linux driver for
> Lucent/Agere ORiNOCO USB devices’
> (http://folk.uio.no/oeysteio/orinoco-usb/building.html)
>
> Code:
> --------------------
> $ cd /lib/modules/$(uname -r)/
> $ rm build
> $ ln -s source build
> $ cd build/
> $ su
> (root password)
> $ make mrproper
> $ make cloneconfig
> $ make prepare-all
>
> Important: You must change
>
> make prepare-all
>
> to
>
> make prepare scripts
> --------------------
>
>
> *Does anyone know what is the essential difference between these two
> procedures?
> *Or at least what is -“make mrproper”, “make cloneconfig”,
> “make oldconfig”- and -“make prepare”- doing?

The actions are as follows:

make mrproper - clean up the source directories and delete all
generated files including .config

make cloneconfig - prepare the configuration file (.config) to match
the running kernel. This does not work on all configurations.

make oldconfig - Starting with the current version of .config, update
for any new or missing options found in the kernel source tree.

make prepare- This prepares all the “global” files.

Nore: just running “make” will do the “make prepare” and “make
oldconfig” steps before starting the build.

What driver did you build? Did you install the new module? If not,
then any cofigure and/or make steps are irrelevant and have nothing to
do with your freezes.

Larry

Hi Larry,
Thank you for the explanation.

I’m trying to build the orinoco_usb driver.
The tarball with the source code is downloaded at http://orinoco.svn.sourceforge.net/viewvc/orinoco.tar.gz
and I found the instructions how to build the driver here: Lucid Tips » Wireless using W200 on openSUSE 11.0
but also here: Linux driver for Lucent/Agere ORiNOCO USB devices

I’m surprised to see that these procedures are different. So, probably I have to find out what is the correct procedure for my system.

I’m sure that the system freeze is related to the wireless driver installation, because I always start from fresh openSUSE installation. Also I do not install any other software or drivers, only the orinoco_usb driver.

I feel that I’m almost there, because the wireless works (I browsed once for almost 5 minutes on the web).
When I prevent wireless from connecting (for example by not entering the keyring password) system does not freeze.

There must be a solution here. Only I have to find out which module/action triggers the freeze.

Where should I look to diagnose the problem?
Is there some kind of log for system crashes?

blnl wrote:
>
> Where should I look to diagnose the problem?
> Is there some kind of log for system crashes?

There are two logs available. The first is a running log for the current boot
that you see with the ‘dmesg’ command. A second log is stored in the file
/var/log/messages. You examine the latter one with ‘sudo less /var/log/messages’.

One problem with a system freeze is that the log may not get updated; however,
if you are lucky, the freeze may be associated with an error that is secondary
and the primary one may be logged.

Larry

In dmesg I don’t see anything strange. dmesg_output.log
However, in /var/log/messages there is something logged log_messages.log
(please don’t mind the dates, it is not set correctly)

I notice the following pattern

Jun 12 11:58:35 linux-396d avahi-daemon[2305]: Registering new address record for 10.0.0.252 on eth1.IPv4.
Jun 12 11:58:35 linux-396d dhclient: bound to 10.0.0.252 -- renewal in 1584 seconds.
Jun 12 11:58:36 linux-396d nm-dispatcher.action: Script '/etc/NetworkManager/dispatcher.d/autofs' exited with error status 1.
Jun 12 11:58:36 linux-396d if-up.d/21-dhcpcd-hook-samba: No dhcpcd info nor dhclient leases file found for eth1.
Jun 12 11:58:37 linux-396d kernel: eth1: no IPv6 routers present
Jun 12 11:58:37 linux-396d SuSEfirewall2: Setting up rules from /etc/sysconfig/SuSEfirewall2 ...
Jun 12 11:58:37 linux-396d SuSEfirewall2: using default zone 'ext' for interface eth0
Jun 12 11:58:37 linux-396d SuSEfirewall2: batch committing...
Jun 12 11:58:37 linux-396d SuSEfirewall2: Firewall rules successfully set
Jun 12 11:58:37 linux-396d nm-dispatcher.action: Script '/etc/NetworkManager/dispatcher.d/nfs' exited with error status 2.
Jun 12 11:58:38 linux-396d nm-dispatcher.action: Script '/etc/NetworkManager/dispatcher.d/smbfs' exited with error status 6.

that repeats several times in the log file and it’s always followed by this log entry

Jun 12 12:03:34 linux-396d syslog-ng[1713]: syslog-ng version 1.6.12 starting

indicating that the system is booting again.

I believe that nm-dispatcher.action’s are probably causing the problem (or somehow related to the problem).
Do you know what’s the meaning of these nm-dispatcher.action errors?