Page 1 of 1

Stock kernel and backports for wireless drivers

Posted: Tue Jan 15, 2013 11:13 pm
by grendelmint
I run the stock kernel on my 32 bit KDE install. This is 3.2.0.23.36 To get support for my RT5370 wireless USB (claimed by rt2800usb) I need to get the linux-backports-modules-cw-3.3-precise-generic install. However this will prompt to install kernel 3.2.0.35 as the latest version of the precise package is 3.2.35.40. Synaptic by default installs the latest version of a package. I'd prefer to stick to the stock kernel for now so I want to know how to get the precise package for my kernel install. I tried to install the only 3.2.0.23 backports package and that is linux-backports-modules-cw-3.3-3.2.0.23-generic. The latest version is 3.2.0-23.6 When I do this I get complaints when I try to start the rt2800usb module about version mismatch. So I'm guessing the backports doesn't match my kernel version. Am I forced to upgrade my kernel?

Re: Stock kernel and backports for wireless drivers

Posted: Wed Jan 15, 2014 6:19 am
by twofeathers
hi grendelmint,
I feel your pain. I've been in a similar position myself. Fortunately this is FOSS so there are a number of solutions available. What the trick is, is to find the best answer for you.
Issues with wifi drivers (specificaly Ralink) and Linux versions is a blog post by itself - but all you're interested in is the answer to your question ;-) so...

Yes the version of kernel (more accurately the linux kernel headers) which the driver was compiled against has to match exactly the kernel which is running. So there are two main solutions:
1) update the kernel to the version which matches the 'backports' module(s) which are available.
2) obtain the source code for the driver. Also install the version of linux-kernel-headers matching the installed kernel and compilation tools required to build the driver (gcc etc.). You can then compile the driver into a kernel module (obtain a .ko file). It should then be possible to install the kernel module into your system. Warning: The source code is available from the official website (Ralink is now Mediatek) http://www.mediatek.com/_en/07_download ... php?sn=501

Notes:
a) The last time I compiled RT28xxusb driver source (I haven't compiled the RT5370 code (yet)) it was written for Linux 2.6 kernel. This meant some editing needed to be done to the code to compile against 3.x kernel. I don't know if this is the case for the latest RT5370 code. (Coincidentally I have a new USB wifi stick which has the RT5370 chipset. If you give me a couple of days I can download the code and go through the compile process with 3.2.0-23.36 kernel and see what issues there are ).
b) I only have a sample of one and the testing was not scientific but I found the following when comparing driver self-compiled and the built-in kernel driver: The self-compiled driver seemed to give better bandwidth than stock kernel driver but seemed to be less robust: This maybe due to a compiler switch I (inadvertently) was using when the driver was built.

So the first question you have to ask yourself is why would you prefer to stick to your existing kernel. Is this more important than being able to use the 'backports' driver?
Of course, if you update the kernel to match the Ralink driver then you are fixed to that version while you need that functionality. If some other s/w or driver needs another version of kernel then you will have to choose between them.

Hope the above helps.

PS:
You haven't said what version of LinuxMint you are running (I assume LinuxMint13 because of kernel version and using 'precise' packages). This with other details would help in providing a complete answer to the question. Please see this guide on posting questions: http://forums.linuxmint.com/viewtopic.php?f=17&t=83444