Stability issues using Edimax EW-7318USg rt73

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=5110

executivul

06-12-2008 19:26:25

Hello all,
I'm new to the forum but I've done my homework and read about everything about rt73 I could find on Google... )
Excuse me English please, I'm not a native english person.

The problem I'm facing I'm building a very small distro for "industrial" use, it's about 10MB, and using my own kernel built from vanilla sources (2.6.25.7) and I'm using an Edimax EW-7318USg for wifi connectivity, the problem that arrises is that after a few hours/days (not same amount of time every time) the card "hangs"/stops wifi-ing like I can communicate with the card iwconfig works, iwpriw also, bur an "iwlist wlan0 scan" returns no results. It's not a router problem since I can see the networks (yes there are more) with my wifi capable phone/laptops.

At first I used the integrated rt73 driver in the 2.6.25.7 kernel, I used them integrated in the kernel as I'd rather not use modules for size issues, then I started using mudules with the same driver, I've also used modules compiled from the CVS tree but I still get the same problem, after a few hours/days (not always the same) the card stops scanning for the network...
A rmmod -f rt73 and reinserting the mod does not solve the problem, only reboot/taking the card out and reinserting would help...

Since my "distro" is for a media-player system I cannot afford rebooting the system at seldom times just to reenable wireless, and knowing that a reboot during the late noght hours does not guarantee me full day of wifi I come here in hope to find a solution.

PS I'd rather not upgrade to a newer kernel because I'm stuck to bootsplash and writing the patch for newer kernel is not a good option for me...

PPS I was using SMP support because I've read on this forum that rt73 driver supports it from the beginning of this year but lately I disabled it in hope to stop my problem from occuring (a few times I got an OOPS in SMP_PREEMPT), now all I get are a few NOHZ warnings but that's when the card still works.

Thank you very much for your time.

IvD

06-12-2008 19:55:01

Is there anything in /var/log/messages regarding rt73usb?

(p.s. I'll move this topic to the rt2x00 forum)

executivul

07-12-2008 11:20:40

Nothing unusual just the registered interface, using MAC Address XXXX...., and the NOHZ interrupt 8, but the NOHZ message I get is when the card still works.

Question Is there any way of "resetting" the card without rebooting the computer or phisically pluging the card out and back in?

IvD

07-12-2008 11:33:50

Reloading all modules will usually do the trick as well.
And with all modules I mean
rt73usb rt2x00usb rt2x00lib mac80211

executivul

07-12-2008 16:33:51

the only module I have is rt73, it's compiled from the cvs tree according to the instructions (boot the kernel, cd Module, make make install)
and removing the module by "rmmod -f rt73" and reinserting "modprobe rt73" does not solve the issue, that's why I'm looking for another way to reset the card.

IvD

07-12-2008 18:25:00

Then back this topic goes to the legacy forum. ;)

executivul

07-12-2008 19:18:54

ok, back to legacy )
question if the cvs is "legacy" what is actual, the driver included in the newer kernel??? how new???

IvD

07-12-2008 19:26:10

Legacy driver is the cvs
the in-kernel driver is the complete rewrite of the drivers

executivul

07-12-2008 19:40:32

So for the moment it seems I have 4 options
-original Ralink driver
-ndiswrapper+Win driver
-rt project legacy
-newer kernel(2.6.27.8 )

in your opinion what would be the best choice in terms of stability? I do not need packet injection or other fancy stuff, just to connect to an UNPROTECTED network, and just in case be able to reset the card without rebooting the computer.

IvD

07-12-2008 19:53:16

In order of recommendation

executivul

07-12-2008 20:35:02

I used the driver included in the 2.6.25.7 kernel as a monolithic kernel and as a module but had some issues with it, when trying to associate I got "Invalid" access point a few times even though after a reboot worked that's why I started using the CVS version, by the way including just the rt73 support in the kernel also loads the "wmaster0" interface and I've read that I should blacklist those modules (in a normal distro) because those keep making problems.

Is there a way to compile just the initialisation part of the driver as an executable to reinitialize the card when it stops responding? something like reload firmware and reset internal registers?

IvD

07-12-2008 21:12:30

wmaster0 is just a dummy interface. Well dummy is the wrong term, but as far as users are concerned the interface should be left alone. It is required for the wireless to be functioning.

As for the reinitialization, reloading the module is usually sufficient (at least for rt2x00, I don't know about the legacy driver).

executivul

08-12-2008 17:45:28

in order to compile the new driver/kernel, i'm set on 2.6.27.8 which is the latest stable kernel at www.kernel.org,
do you have any special piece of advice? what to include, what must be left out, what must be modular in order for the driver to work?

IvD

08-12-2008 18:03:57

Just include the things you need. There are no requirements for modularity. In cases where it does matter the rt2x00 menuconfig entry will indicate the possible problems (although these problems are only for rfkill and leds support, so they are not very important).

executivul

09-12-2008 15:54:52

It seems I found a way to reset the card without rebooting or physically removing
I just found a simple program to reset an USB device, the main thing is

rc = ioctl(fd, USBDEVFS_RESET, 0);

where fd is my usbfs file descriptor (ex /proc/bus/usb/001/002)

I've got an OOPS while doing that with the module inserted and now I'm trying to remove the module first (still using 2.6.25.7 and legacy driver compiled from CVS 08.12.2008). The "rmmod rt73" does not work, I must use "-f", don't know why.

As soon as I figure out the bootsplash patch for 2.6.27 I'll follow your advice and update to the latest kernel/driver.