Realtek 8192cu not working after install

Hi,

after using Ubuntu i’ve decided to try OpenSuse since i have more time in my hands to learn properly but as usual i’m having issues with wireless connectivity.

I have a TP-LINK TL-WN822N which shows as Realtek 8192cu, during the installation process it was working and was able to log in to the network but after a reboot everything was gone.

My issue is that i can’t access a wired connection but i can boot into Ubuntu which has it working.

On both distros i get an error when installing the downloaded driver, i had this fix for Ubuntu (which was kinda working for 2 seconds after every reboot):

sudo apt-get install --reinstall build-essential dkms git
git clone https://github.com/pvaret/rtl8192cu-fixes.git
sudo dkms add ./rtl8192cu-fixes
sudo dkms install 8192cu/1.9
echo “blacklist rtl8192cu” | sudo tee -a /etc/modprobe.d/blacklist.conf

This required a connection which i don’t have now, i’m very new to all this, any idea?

Thanks!

Actually the RTL8192cu should be supported:
https://wireless.wiki.kernel.org/en/users/drivers/rtl819x

And if it worked during the installation process, it should work in the installed system, too.

So, why do you think it is not working? How are you trying to establish a connection?
And which openSUSE version are you actually using?

Some explanations:
In openSUSE there are two ways to manage/configure your network connections:

  • the traditional method (ifup), in 13.2 replaced by Wicked Service
  • NetworkManager

Normally the first is default, if you use this you have to configure your connection in YaST. In this case the desktop’s network applet does not work, those are only frontends for NetworkManager.
So I would recommend to go into YaST->Network Devices->Network Settings->Global Options, and make sure this is set to NetworkManager, not ifup or Wicked.
Then you should be able to connect using your desktop’s means.

Great Info! After reinstalling (just to be sure) and switching to NetworkManager it started again but as it happened with Ubuntu it works only for a few seconds after each reboot, then the signal seems to die off and doesn’t connect anymore.

Any way i can get that fix i’ve mentioned in my original post in OpenSuse? as i now i’m able to execute it?

I think so, yes.

But you should install dkms first (for the dkms commands to work).
This is available from the Packman repo (YaST->Software Repositories->Add->Community Repositories), which you should add anyway for full featured multimedia stuff.

You probably could build it manually without dkms too, but you’d have to repeat it after each kernel update then.

Ok, going places here :slight_smile:

With the burst of connection after reboot i’ve managed to install Pacman and dkms, downloaded that fix from GitHub but i think it’s not compatible with this Kernel as i get this:


sudo dkms install 8192cu/1.9root's password:
Error! echo
Your kernel headers for kernel 3.16.6-2-desktop cannot be found at
/lib/modules/3.16.6-2-desktop/build or /lib/modules/3.16.6-2-desktop/source.

Under github.com/pvaret there’s no other version as far as i can tell, do i have a way out of this?

No, the message means that you don’t have the kernel headers installed.
You’d probably need kernel-desktop-devel, matching your kernel version, i.e. 3.16.6. As there was a kernel update for 13.2 already, YaST/zypper will try to install the higher version, you’d have to select 3.16.6 manually (“Versions” tab in YaST, appending the version for zypper, or just update the kernel to the latest version)

Or better go into YaST->Software Management and install the “Kernel Development” pattern (“View”->“Patterns”).
But the same version problem might exist then, so make sure to update the kernel (“kernel-desktop”), or manually select the 3.16.6 versions for all automatically selected packages where applicable.

PS: all of that should be available on your installation medium, so if you still have that, just disconnect the internet connection and insert it. You won’t have any version problems then either.

I’ve got all installed but since I can’t update the whole system at once I think would be better to do the kernel only for now but I can’t find info on how to do that…

For Kernel 3.16.7 I suppose?

but since I can’t update the whole system at once I think would be better to do the kernel only for now but I can’t find info on how to do that…

I already wrote that: search for “kernel-desktop” in YaST, click on “Versions” below the package list, and mark the 3.16.7 version to be installed.
Or run “sudo zypper up kernel-desktop”.

And you need to boot to Kernel 3.16.7 then as well (should be the default after you install it, but you have to reboot of course).

Never mind got it…

OK done, I get an error 2 when compiling the driver but seems it got further than before.

Blacklisted some modules but now I have to aut o load 8192cu and modules folder its empty :frowning: a google search doesn’t return much, probably have to add a driver file to the folder? But which one?

Which folder are you talking about?

If the driver didn’t compile correctly, it’s of course clear that the driver files are missing.
So please post the error messages from the compilation too.

The problem might be that that driver you are trying to compile is not compatible with kernel 3.16 though…

Was being optimistic, i needed it after the second whole day trying this, i really appreciate your help! learning so much as i go!

Was referring to first blacklisting rtl8192cu,rtl8192c_common and rtlwifi and then (at least in ubuntu) add 8192 to /etc/modules to load at start which obviously in OpenSuse it’s just an empty modules-load.d folder, haha loving this.

A man modules-load.d showed me the way but i was way ahead of myself anyways…here’s the error when compiling the driver:


/home/Gendo/Documents/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/os_dep/linux/os_intfs.c:999:2: warning: (near initialization for ‘rtw_netdev_ops.ndo_select_queue’) [enabled by default]
cc1: some warnings being treated as errors
/usr/src/linux-3.16.7-7/scripts/Makefile.build:273: recipe for target '/home/Gendo/Documents/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/os_dep/linux/os_intfs.o' failed
make[4]: *** [/home/Gendo/Documents/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/os_dep/linux/os_intfs.o] Error 1
/usr/src/linux-3.16.7-7/Makefile:1359: recipe for target '_module_/home/Gendo/Documents/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911' failed
make[3]: *** [_module_/home/Gendo/Documents/RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911] Error 2
Makefile:195: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:24: recipe for target '__sub-make' failed
make[1]: *** [__sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-3.16.7-7-obj/x86_64/desktop'
Makefile:584: recipe for target 'modules' failed
make: *** [modules] Error 2
##################################################
Compile make driver error: 2
Please check error Mesg
##################################################

That’s not really openSUSE-specific btw, that’s how systemd does it (so it will be like this in the next Ubuntu as well probably).

here’s the error when compiling the driver:

Hm, I don’t really see the actual error message there, but the build clearly failed.

But as that driver is from 2013, it’s likely that it just doesn’t build with 3.16.

Maybe just copying that file 8192cu-disable-power-management.conf to /etc/modprobe.d/ as mentioned in the troubleshooting section on the github page would help too? You have to remove your blacklist though, of course.

Or, as a driver for your device is part of the kernel anyway, the latest kernel version might be worth a try as well, I suppose.
You can install that quite easily from the Kernel:stable repo:
http://download.opensuse.org/repositories/Kernel:/stable/standard/

Just download the corresponding .rpm package and install it, either with “rpm -i kernel-xxx.rpm”, “zypper in kernel-xxx.rpm”, or clicking on it in your file manager. Or add the repo in YaST->Software Repositories and install it with YaST->Software Management (via the “Versions” tab as mentioned).
Maybe that would solve your problems?

The older kernel will be kept, you can always select to boot that in “Advanced Options” in the boot menu.

Btw, the updated kernel-firmware package from the above repo (noarch subdirectory) might be needed too.

Ok, don’t get mad please…

I’m now writing from OpenSuse! I was so obsessed with following a guy’s blog on how to fix his specific issue (without understanding what all of it meant) and adapt the whole thing to it that i didn’t see the simplest solution which was to follow the 3 steps on http://github.com/pvaret/rtl8192cu-fixes, of course i needed to know how to get Pacman, dkms and to update the Kernel beforehand but it didn’t need to be that hard!

I now know how to navigate Yast, how to navigate and manage files in the Terminal, use Nano, Pacman commands and plenty more just from this troubleshooting.

Thanks again for your help and time, i now have a different approach to problem solving and i’m an OpenSuse user!

So is your wireless working fine now?
What did you do exactly now to fix it?

Reinstalled to see exactly what worked and this is what it’s needed in my situation:

-Add Pacman repos (Yast)
-Install dkms (Yast)
-Install Git (Yast)
-Update Kernel (Yast)
-Install devel_basis (zypper install --type pattern devel_basis)


git clone https://github.com/pvaret/rtl8192cu-fixes.git


sudo dkms add ./rtl82192cu-fixes


sudo dkms install 8192cu/1.9


sudo depmod -a


sudo cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/

Reboot :slight_smile:

Ah, ok. So basically everything from that github page.

Sorry, I misunderstood you a bit.
I thought, you got those error messages when building the driver from https://github.com/pvaret/rtl8192cu-fixes.
But apparently you tried to build a completely different driver at that point…

Btw, I somehow do have the feeling that just using the 8192cu-disable-power-management.conf might be sufficient.
As I wrote already, those rtl8192cu-fixes are from 2013 and intended for Kernel 3.11, so they might not be necessary any more.

And the “troubleshooting” text seems to describe exactly your problem, no?

There is a known issue with power management on some hardware. If your WiFi connection drops after a few minutes, install the following module setting file to disable power management in your WiFi interface:

sudo cp ./rtl8192cu-fixes/8192cu-disable-power-management.conf /etc/modprobe.d/

And then reboot.

For some reason i was still trying to install the driver from the manufacturer site.

Btw, I somehow do have the feeling that just using the 8192cu-disable-power-management.conf might be sufficient.

Tried that with the file on a usb stick since i had to reinstall yet again but it didn’t help and had to do the whole thing again, left the file there anyways and doesn’t hurt either.

Hm?
Maybe I’m misunderstanding you again, but of course it doesn’t help if you have the file on a usb stick.
You have to copy it to /etc/modprobe.d/ so that it has any effect.

I get that much :stuck_out_tongue: it was copied.