LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Wireless Networking (http://www.linuxquestions.org/questions/linux-wireless-networking-41/)
-   -   Linux hangs after having installed WMP54GX Linksys driver in NdisWrapper (http://www.linuxquestions.org/questions/linux-wireless-networking-41/linux-hangs-after-having-installed-wmp54gx-linksys-driver-in-ndiswrapper-518305/)

Maladjez 01-11-2007 05:33 AM

Linux hangs after having installed WMP54GX Linksys driver in NdisWrapper
 
Hello!

I'm using OpenSuSE 10.2 on a PC with an WMP54GX Linksys WLAN card. The card won't work so far and the system almost hangs (computer is extremely slow).
First I installed NDisWrapper via YAST2 and then followed up the instructions on the OpenSuse Site. I downloaded and installed the NDIS driver ("netani") from the Linksys Site. "ndiswrapper -l" showed that the driver was installed properly with a PCI ID of 17cb:0001 (as mentioned here (see 16.)). Via YAST2 I configured the WLAN card, but got no access the the AP. I made a reboot and during startup (which took ca. 10mins.!) I got lots of messages like the following:

ndiswrapper (NdisWriteErrorLogEntry:248): log: C000138A, count: 8, return_address: [hex value]
ndiswrapper (NdisWriteErrorLogEntry:240): code: XXXXXXXXXX
ndiswrapper (NdisWriteErrorLogEntry:240): code: XXXXXXXXXX
ndiswrapper (NdisWriteErrorLogEntry:240): code: XXXXXXXXXX
ndiswrapper (NdisWriteErrorLogEntry:240): code: XXXXXXXXXX
ndiswrapper (NdisWriteErrorLogEntry:240): code: XXXXXXXXXX
ndiswrapper (NdisWriteErrorLogEntry:240): code: XXXXXXXXXX
ndiswrapper (NdisWriteErrorLogEntry:240): code: XXXXXXXXXX
ndiswrapper (NdisWriteErrorLogEntry:240): code: XXXXXXXXXX

(XXXXXXXXXX are several varying decimal (?) numbers, [hex value] is only one hex code).

This messages are repeated several times for at least 8mins., Then the rest of the Linux startup and KDE startup is proceeded, but the computer works really slow. I installed the driver from the "Drivers" folder of the Zip package, which include the files aninet.cat, netani.inf, wni6000.bin, wnihdd50.sys and wnihdd51.sys.
When disabling the WLAN card (ndiswrapper -r netani), removing the configuration via YAST2 and rebooting, the system starts up normally (without the card driver loaded).
"A little bit funny" is the fact that I cannot reinstall the card driver with the same configuration (no "Static-0" in YAST2 WLAN configuration is possible). It seems that the driver and its configuration is not removed completely.

Do you have any idea how to solve this? What does the error messages (NdisWriteErrorLogEntry) mean?

I goggled a lot and searched through LQ, but I found no solution...

Thanks

Maladjez

Maladjez 01-12-2007 04:38 AM

It seems that there is something like a "kernel crash" when "modprobe ndiswrapper" is executed. Allthough WMP54GX is listed in the "NdisWrapper List", I have only found one hint, that WMP54GX is really running under linux (see here).

I'd bee glad for any ideas of how to get it run...

Hangdog42 01-12-2007 06:41 AM

I'm going to guess that the version of ndiswrapper you're using was compiled against a different kernel. Those errors you posted are definitely NOT normal.

To be honest, using pre-compiled versions of ndiswrapper is usually a poor idea, particularly given how easy it is to compile from source. If I were in your shoes, I'd make sure the kernel source code was installed, then download the ndiswrapper source code and compile it. There are excellent instructions for doing this on the ndiswrapper wiki site.

Maladjez 01-12-2007 07:51 AM

Thanks, Hangdog42, for your answer.

The kernel sources are installed (/usr/src/linux is present). It's true that I used an older version of NdisWrapper (1.25, the version shipped with OpenSuse 10.2, installed with YAST2).
My next steps are:
- Deinstalling ndiswrapper 1.25 & installing ndiswrapper 1.34 (last stable version)
- Installing a kernel patch which increeses the Linux kernel stack size from 8 kB to 16 kB (linux-2.6.x-ykstacks.patch from Linuxant)
- Installing a newer kernel (maybe I use the last version: 2.6.20-rc4)

Hangdog42 01-12-2007 11:40 AM

I'm not so sure it is the version of ndsiwrapper that is the problem, so much as it might not have been compiled against your running kernel. Even if you're running a stock Suse kernel, compiling ndiswrapper rather than using the binary might do the trick.

Maladjez 01-12-2007 03:40 PM

I have installed ndiswrapper 1.34 = no result, problem is the same as described

Hangdog42 01-13-2007 07:14 AM

I hate to say it, but I've done a fair bit of googling and I have yet to find a single instance of anyone getting this card to work in Linux. I'm starting to think that these sort of MIMO cards require things that ndiswrapper doesn't support.

As a longshot, do you know what chipset is in this thing? Try looking at the output of lspci and see if it is listed. If it uses a chipset with a native linux driver, that might be an approach.

Maladjez 01-13-2007 03:49 PM

Meanwhile I have patched the Kernel -> also no result.

The chipset on the card is "Airgo Networks Inc AGN100 802.11 a/b/g True MIMO Wireless Card (rev 03)"

Hangdog42 01-14-2007 08:00 AM

Well, I found one instance (here) of someone getting that chipset to work. Unfortunately, I don't think any of their problems apply to you. They did it on Fedora with ndiswrapper and ran into the infamous 4K stack problems. I suppose you could try to compile a custom kernel to make sure that you don't have any stack issues.

Quote:

Meanwhile I have patched the Kernel -> also no result.
Can I ask what you used to patch the kernel?

Maladjez 01-15-2007 08:20 AM

Quote:

Originally Posted by Hangdog42
Can I ask what you used to patch the kernel?

I used the tool 'dldrconfig' from Driverloader (tar Version) to patch the Kernel ("dldrconfig --patch"). The problem is, that I do not know how to control, weather the patch was applied successfully or not. There was no (error) message after having installed the patch. In "Make xconfig" no change of the stack size was mentioned.

Next I'll try the new 2.6.20-rc5 kernel from kernel.org. If this also fails, I'll try Fedora Core 6...

Hangdog42 01-15-2007 09:06 AM

Quote:

In "Make xconfig" no change of the stack size was mentioned.
It used to be in Kernel Hacking. They may have moved it again however.
Quote:

Next I'll try the new 2.6.20-rc5 kernel from kernel.org.
To be honest, I don't think will get you anything. If this is a stack problem, I don't think they've been changing it (other than seriously hiding it in the configuration parameters).

You know, you might give linuxant a try. It will sometimes work where ndiswrapper has failed. They do give a free trial period to try it, and given the problems so far, it can't hurt.

Maladjez 01-15-2007 09:38 AM

Quote:

Originally Posted by Hangdog42
You know, you might give linuxant a try. It will sometimes work where ndiswrapper has failed. They do give a free trial period to try it, and given the problems so far, it can't hurt.

Sure, I have allready tried Driverloader. My attempts with that tools lead into a total desaster: I had to copy several XP dlls into the Driverloader folder (just like HAL.dll), because the kernel log showed them missing. After that, Linux crashed completely - I had to reinstall OpenSuse...

Hangdog42 01-15-2007 10:31 AM

Quote:

Originally Posted by Maladjez
Sure, I have allready tried Driverloader. My attempts with that tools lead into a total desaster: I had to copy several XP dlls into the Driverloader folder (just like HAL.dll), because the kernel log showed them missing. After that, Linux crashed completely - I had to reinstall OpenSuse...

Um, no offense intended, but if you were copying dll's into the driveloader folder, you were doing something very wrong. Like ndiswrapper, linuxant driverloader is a kernel module that allows a Windows driver to function in Linux. Windows dll files are completely irrelevant, particularly since they can't run. The only things you should have been doing is running make && make install, and then pointing to your Windows driver .inf and .sys files.

So at the risk of being more offensive (and I'm not trying to insult you here, I'm just trying to understand what is going on), I think it would be a good idea if you posted details about your procedure for compiling and installing ndiswrapper. I just want to make sure that something basic isn't going wrong here. Also, if compiling ndiswrapper throws any error messages, post those as well.

Maladjez 01-15-2007 04:40 PM

@Hangdog42

No problem! It's a bit crazy to use M$ DLLs here - it was only an attempt to look for a result after that kernel log messages. I was planning to install the OS again to get a "fresh" system again.
I did the following: install OpenSuSE 10.2 with almost all development tools & sources and all patches, download driverloader-2.35.tar.gz*, ndiswrapper-1.34.tar.gz** and WMP54GX_v10.zip**.

1.) Driverloader
a.) I extracted the package with "tar -xzf driverloader-2.35.tar.gz"
b.) I changed to the package directory /tmp/downloads/driverloader-2.35
c.) I ran "make install" from the top of the package directory, and
d.) "dldrconfig" to complete the installation and configure the device.
e.) I ran "dldrconfig --patch" to download & install the patch dldr-2.35-2.6.19.patch, followed by a
f.) reboot

2.) NdisWrapper
a.) I extracted the package with "tar zxvf ndiswrapper-1.34.tar.gz"
b.) I changed to the package directory with "cd ndiswrapper-1.34"
c.) I ran "make distclean", then "make" and finally "make install" from the top of the package directory /tmp/downloads/ndiswrapper-1.34
d.) I rebooted the system

3.) Device driver
a.) I extracted the content of the zip archive to /tmp/downloads/WMP54GX_v10 with KDE konqueror

4.) Installation
a.) I changed to /tmp/downloads/WMP54GX_v10/Drivers directory***
b.) "ndiswrapper -i netani.inf", output: "installing netani..."
c.) "ndiswrapper -l", output: "netani : driver installed, device (17CB:0001) present"
d.) "ndiswrapper -m", output: "adding 'alias wlan0 ndiswrapper' to /etc/modprobe.d/ndiswrapper ..., couldn't add module alias: at /usr/sbin/ndiswrapper line 720"

At this point I stopped installation for further investigation. I haven't seen that erorr message before. I'm gonna proceed tomorrow...

* from http://www.linuxant.com/driverloader.../downloads.php
** from http://ndiswrapper.sourceforge.net
*** files in that directory: aninet.cat, netani.inf, wni6000.bin, wnihdd50.sys and wnihdd51.sys

Maladjez 01-16-2007 06:21 AM

Here's a code snippet (Perl) from the file "ndiswrapper":

Code:

sub add_module_alias {
    my $alias = 0;

    open(MODPROBE, "modprobe -c|") or die "couldn't run modprobe: $!";
    while (my $line = <MODPROBE>) {
        if ($line =~ /^alias\s.+\sndiswrapper/) {
            printf "module configuration already contains alias directive\n\n";
            $alias = 1;
        } elsif ($line =~ /^install\s.*ndiswrapper/) {
            warn "module configuration contains directive $line;" .
              "you should delete that";
        } elsif ($line =~ /^post-install\s+ndiswrapper/) {
            warn "module configuration contains directive $line;" .
              "you should delete that";
        }
    }
    close(MODPROBE);

    if ($alias) {
        return 0;
    }

    printf "adding \"alias wlan0 ndiswrapper\" to $modconf ...\n";
    system("echo \"alias wlan0 ndiswrapper\" >>$modconf") or
      die "couldn't add module alias: $!";
    if (-x "/sbin/update-modules") {
        system("/sbin/update-modules");
    }
    return 0;
}

Line 720 is bold printed


All times are GMT -5. The time now is 02:38 AM.