Comment 22 for bug 662288

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote : Re: rt2800pci freeze on module unload [maverick i386]

Hi Greg,

That was quick :-) . Did you test on battery? There are two bugs that I currently have to work around if I want to run my rt2860 hardware (which has the same rt2800pci driver) on battery. Those bugs (introduced by power save measures) do not happen when plugged in (for most BIOS versions, at least). Better to test plugged in.

There is only very little reason to prefer testing compat-wireless with a daily mainline kernel to testing it with e.g. a maverick kernel. The daily compat-package brings all the newest wireless stuff with it either way. Only for the small chance that changes in the rest of the kernel affect the bug does it make a difference. So, if mainline is inconvenient, it's perfectly fine to use an older kernel. Also, one of those power save bugs is a regression introduced by 2.6.38, so an older kernel will work better in this regard.

You might find it more convenient to not use blacklisting, which is per installed operating system, but instead disable the modules you do not want per kernel:
e.g. for disabling the rt2800pci module in your "work" kernel go to:
/lib/modules/<the kernel whoose module you want to disable>/kernel/drivers/net/wireless/rt2x00/
and just rename it:
sudo mv rt2800pci.ko rt2800pci.ko.disable
That way you can boot into your "work" kernel and have the "work" wireless without fiddling with blacklisting. And when testing then just boot into your "test" kernel and automatically have the "test" wireless modules.
If you are using compat-wireless for testing then you should usually not have to disable any other module. The modules from compat-wireless get installed into a subdirectory of /lib/modules/`uname -r`/updates/ and modules from this updates directory usually get preferred anyway.
You can use the current mainline kernel or any older, stable kernel from there, or the second, older, maverick kernel or whatever other kernel you have as "test" kernel.

I just did the compile of compat-wireless-2011-02-24.tar.bz2 on the ubuntu mainline 2.6.38-999-generic #201102240912 kernel. It went fine. Maybe you did not make use of the script to restrict compilation to just the modules you need.
You can do so by running this before make:
./scripts/driver-select rt2x00
I hope that it will then work for you. They are of course daily packages and often enough there is bit that does not compile without fiddling. The compat-wireless project certainly has to work hard to keep it in compilable form.

The tar-balls from [2] _are_ the linux-next variant of compat-wireless. They bring the wireless as it exists in linux-next, which is newer than what mainline has. That is the point of testing those. They are the closest to what the developers a currently working on. That makes relatively certain that the bug has not happened to be fixed without anyone noticing and also often the developers tend to know the newest code the best. The other, stable, variant of compat-wireless brings the wireless of mainline and older stable kernels, the same stuff you get when installing those kernels. They are not interesting for the purpose of this testing (unless we would want to test whether it possibly is a regression).

btw: modinfo rt2800pci shows the path to the module that is loaded or will get loaded. You can use that to see whether the rt2800pci you are about to load is really from the updates directory where the compat-wireless modules live.

I hope I have managed to make my explanations readable. If there is anything else, please just ask.

Thanks,
Wolfgang