Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
/drivers/net/wireless/rtl8192cu is missing from 3.17 & 3.18 #755
There were conflicts with the out-of-tree driver when moving to 3.18 so I chose to give the upstream driver a try. Really I would very much prefer to use the upstream driver. If there are bugs with it, then they should be reported upstream, fixed there and I can pull in the fixes.
However I accept that the upstream driver has been broken (at least for some users) for a long time, and it is a very widely used driver on the Pi, so some flexibility is possible.
It would be useful if you could file a upstream bug, as making the upstream driver reliable is the best solution. See https://www.kernel.org/pub/linux/docs/lkml/reporting-bugs.html
At the moment this is a 100% show stopper.
If you were to try to push this kernel on the normal branch (not BRANCH=next) then close to half of the WiFi attached Raspberry Pis in the World will stop working (because the Edimax dongle is one of the highly recommended dongles and has been since at least August 2012 when I got my first RPi).
There's probably a larger user base with Raspberry Pis than on any upstream machines. How many folks outside of "Raspberry Pi Land" wouldn't have some other brand of WiFi on-board and be using USB dongles now?
The upstream driver runs for a short time, but then silently fails, it's so flaky that there's now a long cat5 cable running from my switch to the Raspberry Pi that lives in my conservatory to keep it connected. If I could work out what parms to pass to the module then I'm happy to run it with very verbose debugging enabled. I've been unable to find out what parms can be set for power management either (with this "new" driver).
The out-of-tree driver has some well documented parms that are commonly offered on the RPi forum as a solution to the WiFi dongle randomly disconnecting and most "punters" go away happy with those.
I'm running with a self-built (cross compiled) 3.18.1 kernel and not adverse to patching code.
but that's over a year old and only claims to support up to kernel 3.9.
I seem to remember finding a github which maintained a newer version of that code.
I set up an SD card with 3.18.1 then I copied the rtl8192cu source from 3.12.35+ #730 into a separate directory and cloned linux and firmware from github and checked them out for 3.18.y
Then setup linux using
then patched rtl8192cu/Makefile to get it to compile.
Compiled the driver using
Came up with a single warning but compiled and appears to run without problems as in 3.12.xx.
Thanks, that will make a lot of people happy.
re: procfs. I've no idea what that is but glad you've fixed it. Note,I had to compile using gcc 4.7 as gcc 4.8 caused command make modules_prepare to fail with an error. see issue #758
One thing I forgot. To get the 8192cu driver to load in 3.18.1 #731 it's necessary to blacklist the rtl8192cu driver that is currently compiled in the 3.18.1 image.
Add the line
to file /etc/modprobe.d/raspi-blacklist.conf. Note no spaces before blacklist rtl8192cu.
I've pushed it. I didn't need the blacklist - I'm getting 8192cu as default.
It may make sense to blacklist the less preferred (rtl8192cu) as a default on raspbian. If someone wants to switch they can swap the blacklisted one.