Stability issues using Edimax EW-7318USg rt73
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 (220.127.116.11) 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 18.104.22.168 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.
Is there anything in /var/log/messages regarding rt73usb?
(p.s. I'll move this topic to the rt2x00 forum)
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?
Reloading all modules will usually do the trick as well.
And with all modules I mean
rt73usb rt2x00usb rt2x00lib mac80211
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.
Then back this topic goes to the legacy forum.
ok, back to legacy
question if the cvs is "legacy" what is actual, the driver included in the newer kernel??? how new???
Legacy driver is the cvs
the in-kernel driver is the complete rewrite of the drivers
So for the moment it seems I have 4 options
-original Ralink driver
-rt project legacy
-newer kernel(22.214.171.124 )
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.
In order of recommendation
- rt2x00 driver (as found in the kernel since 2.6.24)
- Legacy driver (as released by this project)
- Legacy driver (as released on Ralink's website, not supported by this project)
- ndiswrapper (not supported by this project)
I used the driver included in the 126.96.36.199 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?
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).
in order to compile the new driver/kernel, i'm set on 188.8.131.52 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?
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).
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 184.108.40.206 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.