• Announcements

    • 1. Check power supply, check SD card and check other people experiences

      Power supply issues are one of the three biggest issues you'll face when starting with Single Board Computers (SBCs). SD card issues, whether fake or faulty, are another and issues resulting from poor board design is the other common issues you can encounter.   Power supply issues can be tricky. You might have a noisy power supply that works with one board because it has extra filtering, but won't work with another. Or you're using that cheap phone charger because your board has a microUSB connector, and it is either erratic, or doesn't start up, or even becomes the cause of some SD card issues.    Some tips to avoid the most common causes of problems reported:   Don't power via micro USB  - unless you have optimised your setup for low power requirements. Micro USB is great for mobile phones because they are simply charging a battery. It's bad for SBCs. Yes, it does work for a lot of people, but it also causes more problems and headaches over time than it is worth, unless you know exactly what you are doing. If you have a barrel jack power connector on your SBC, use it instead! If there is an option for powering via header connections, use that option!
        Don't use mobile phone chargers. They might be convenient and cheap, but this is because they are meant for charging phones, not powering your SBC which has particular power requirements.
        When you are evaluating a power supply, make sure you run some stress tests on your system to ensure that it will not cause issues down the path.   (Micro) SD card issues can be sneaky. They might appear right at the start causing strange boot and login errors, or they might cause problems over time. It is best to run a test on any new SD card you use, to ensure that it really is what it is, and to ensure that isn't faulty. Armbian provides you a simple way to do this   --   armbianmonitor -c /path/to/device/to/test  
    • 2. Make sure to collect and provide all necessary information

      We can only help if you provide quality information for us to work with. All stable images from the download section are tested, most stable upgrades are tested and we have tens of thousands of users. Even with regular and extensive testings, bugs sometimes do slip through. This is a voluntary support service and is unrelated to board makers, and is not obligated to provide you any answers. Repeated asking the same questions because you're not happy with the answers will result in you being ignored.

      Before you post a question, use the forum search as someone else might have already had the same problem and resolved it. And make sure you've read the Armbian documentation. If you still haven't found an answer, make sure you include the following in your post:   1. Logs when you can boot the board: armbianmonitor -u (paste URL to your forum post)   2. If your board does not boot, provide a log from serial console or at least make a picture, where it stops.   3. Describe the problem the best you can and provide all necessary info that we can reproduce the problem. We are not clairvoyant or mind readers. Please describe your setup as best as possible so we know what your operating environment is like.     We will not help in cases you are not using stable official Armbian builds, you have a problem with 3rd party hardware or reported problem would not be able to reproduced.

Module 8192cu.ko not working in Armbian >= 5.14
1 1

16 posts in this topic

Recommended Posts

Hello:

 

First, thank you for all your incredible work in armbian. It is really great what you've done so far. And future looks even better.

I come here to try to solve a problem that I have with a cheap usb wifi dongle. The dongle usb identifier is:

Bus 001 Device 006: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

With armbian 5.14 (and a fresh install image), I followed the instruction here

https://forum.armbian.com/index.php/topic/1237-tutorial-opi-one-wireless-success/

to let it work, without problems. Nice tutorial.

My problems began when I was trying to use the same dongle with a fresh installed armbian 5.20. The dongle is not auto recogniced.

What is more interesting, is that the module is there, under:

/lib/modules/3.4.112-sun8i/kernel/net/wireless/8192cu

In this case, I can even insert manually the modules with:

root@equuleus:/lib/modules/3.4.112-sun8i/kernel/net/wireless# insmod ./8192cu.ko
root@equuleus:/lib/modules/3.4.112-sun8i/kernel/net/wireless# lsmod
Module                  Size  Used by
8192cu                624560  0
sunxi_cir               1601  0
mac80211              358429  0
pcf8591                 3363  0
bmp085                  3487  0

And wifi is working flawless!!

If I try to load the module in boot time in rc.local, it fails complaining:
"Tue Nov 15 00:03:41 CET 2016
uid=0(root) gid=0(root) groups=0(root)
insmod: ERROR: could not insert module /lib/modules/3.4.112-sun8i/kernel/net/wireless/8
192cu.ko: Unknown symbol in module"


Thats my /etc/rc.local:

root@equuleus:/etc# more rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

date >> /root/arrancaModulo8192cuEn_rc.local.log


echo $(id) >> /root/arrancaModulo8192cuEn_rc.local.log

modprobe mac80211 2>> /root/arrancaModulo8192cuEn_rc.local.log 1 >> /root/arrancaModulo
8192cuEn_rc.local.log

insmod /lib/modules/3.4.112-sun8i/kernel/net/wireless/8192cu.ko 2>> /root/arrancaModulo
8192cuEn_rc.local.log 1 >> /root/arrancaModulo8192cuEn_rc.local.log

date >> /root/arrancaModulo8192cuEn_rc.local.log

echo "fin arranque" >> /root/arrancaModulo8192cuEn_rc.local.log

exit 0


Same case if I upgrade online (following https://docs.armbian.com/User-Guide_Getting-Started/)Armbian from 5.14 to 5.23 (the current version).

The module doesn't load at boot time.

The module is still in the same path but in this case, I can't even manually load the module; the error is different:

root@orangepipc:/lib/modules/3.4.112-sun8i/kernel/net/wireless# ls
8192cu.ko               lib80211_crypt_tkip.ko  lib80211.ko
lib80211_crypt_ccmp.ko  lib80211_crypt_wep.ko

root@orangepipc:/lib/modules/3.4.112-sun8i/kernel/net/wireless# insmod ./8192cu.ko
insmod: ERROR: could not insert module ./8192cu.ko: Invalid parameters

In messages, I found this:

Nov 15 20:02:44 localhost kernel: [  231.219508] 8192cu: Unknown symbol alloc_etherdev_mqs (err -22)
Nov 15 20:02:44 localhost kernel: [  231.219667] 8192cu: Unknown symbol skb_copy_bits (err -22)
Nov 15 20:02:44 localhost kernel: [  231.219748] 8192cu: Unknown symbol skb_put (err -22)
Nov 15 20:02:44 localhost kernel: [  231.219892] 8192cu: Unknown symbol __netif_schedule (err -22)
Nov 15 20:02:44 localhost kernel: [  231.219980] 8192cu: Unknown symbol unregister_netdev (err -22)
Nov 15 20:02:44 localhost rsyslogd-2007: action 'action 17' suspended, next retry is Tue Nov 15 20:03:14 2016 [try http://www.rsyslog.com/e/2007 ]
Nov 15 20:02:44 localhost kernel: [  231.220181] 8192cu: Unknown symbol skb_dequeue (err -22)
Nov 15 20:02:44 localhost kernel: [  231.220269] 8192cu: Unknown symbol dev_alloc_name (err -22)
Nov 15 20:02:44 localhost kernel: [  231.220364] 8192cu: Unknown symbol unregister_netdevice_queue (err -22)
Nov 15 20:02:44 localhost kernel: [  231.220464] 8192cu: Unknown symbol eth_type_trans (err -22)
Nov 15 20:02:44 localhost kernel: [  231.220596] 8192cu: Unknown symbol __alloc_skb (err -22)
Nov 15 20:02:44 localhost kernel: [  231.220663] 8192cu: Unknown symbol netif_device_attach (err -22)
Nov 15 20:02:44 localhost kernel: [  231.220717] 8192cu: Unknown symbol skb_queue_tail (err -22)
Nov 15 20:02:44 localhost kernel: [  231.220811] 8192cu: Unknown symbol dev_kfree_skb_any (err -22)
Nov 15 20:02:44 localhost kernel: [  231.220898] 8192cu: Unknown symbol skb_pull (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221002] 8192cu: Unknown symbol skb_push (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221070] 8192cu: Unknown symbol wireless_send_event (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221125] 8192cu: Unknown symbol register_netdev (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221195] 8192cu: Unknown symbol free_netdev (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221348] 8192cu: Unknown symbol __pskb_pull_tail (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221398] 8192cu: Unknown symbol netif_rx (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221457] 8192cu: Unknown symbol skb_trim (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221627] 8192cu: Unknown symbol netif_carrier_off (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221698] 8192cu: Unknown symbol skb_copy (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221755] 8192cu: Unknown symbol skb_clone (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221804] 8192cu: Unknown symbol dev_get_by_name (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221859] 8192cu: Unknown symbol netif_carrier_on (err -22)
Nov 15 20:02:44 localhost kernel: [  231.221995] 8192cu: Unknown symbol register_netdevice (err -22)



Is there a way to make it work in Arbian >5.14?
Can I somehow install the module in the kernel?
Should I recompile it? Is there a way to do this without recompiling all kernel?

Thanks in advance.

Ramón
 

Share this post


Link to post
Share on other sites

@rgb

 

Using here the 8192cu with all my boards and 3.4.113 kernel, armbian 5.24, NanoPi NEO & OPi ONE

 

Just put it in modules.conf

 

nano /etc/modules-load.d/modules.conf
=====================================

#8189es
8192cu

 

Christos

Share this post


Link to post
Share on other sites

Hello,Christos:

 

Thank you for your response.

 

Which usb id has your wifi dongle? I think that this is the key thing. Somehow, the driver is not associated with the usb dongle...

 

By the way, I didn't include it in the subject, but I have a Orange Pi PC. I don't think this matters that much though...

 

I dont have access to the OpI now, but I will recheck kernel version and files. I was adding or tunning what is required in https://forum.armbian.com/index.php/topic/1237-tutorial-opi-one-wireless-success/, so:

 

/etc/modules-load.d/modules.conf with you configuration (to avoid preload of 8189es).

/etc/network/interfaces with the apropiate network config for the new interface.

/etc/wpa_supplicant/wpa_supplicant.conf with data for my wifi network.

 

Outside of this, I have files to give options to the module (about power management, etc: https://forum.armbian.com/index.php/topic/749-orange-pi-pc-wireless-module-8192cu/):

 

/etc/modprobe.d/8192cu.conf

         options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

 

and to blacklist the rtl* modules.

 

that's it...

Share this post


Link to post
Share on other sites

Well, with new Armbian releases, I use only the inclusion of 8192cu in the modules.conf and nothing else regarding configuration.

There is a utility nowadays that takes care of everything and works ok for me, it is the nmtui.

So just include the 8192cu in the modules.conf then reboot and then use nmtui.

Working with usb wifi dongle/key in NanoPi NEO and OPi ONE.

Share this post


Link to post
Share on other sites

Hello, Christos.

Thank you again for your anwer.

I was checking again with a fresh install of 5.20 (last version you can download). This time, I just did what you told me and... ITS WORKING!

What is really strange, is what I see in the loaded modules:

root@orangepipc:~# lsmod
Module                  Size  Used by
sunxi_cir               1601  0
rtlwifi                45784  0
rtl8192c_common        33420  0
mac80211              358429  2 rtlwifi,rtl8192c_common
8192cu                624560  0

I say it is strange, because before (Armbian <=5.14) you really needed to blacklist all those rtl* modules and configure the 8192cu with power parameters.

Now, it seems like the those modules are necesary.

More insteresting: upgrading online to 5.23, (root@equuleus:~# uname -a
Linux equuleus 3.4.112-sun8i #10 SMP PREEMPT Sun Oct 23 16:06:55 CEST 2016 armv7l GNU/Linux)

After a reboot, module is AGAIN not loading at boot time:

root@equuleus:~# lsmod
Module                  Size  Used by
sunxi_cir               1601  0
rtl8192cu              61143  0
rtlwifi                45784  1 rtl8192cu
rtl8192c_common        33420  1 rtl8192cu
mac80211              358429  3 rtlwifi,rtl8192c_common,rtl8192cu
pcf8591                 3363  0
bmp085                  3487  0

root@equuleus:~# iwconfig
lo        no wireless extensions.

tunl0     no wireless extensions.

eth0      no wireless extensions.

And in this case, if I try to load it manually:

root@equuleus:/lib/modules/3.4.112-sun8i/kernel/net/wireless# insmod ./8192cu.ko
insmod: ERROR: could not insert module ./8192cu.ko: Device or resource busy

I guess the "bad" driver is locking the usb dongle.

If I blacklist with /etc/modprobe.d/blacklist-native-rtl8192.conf

## Keep the native (and currently broken) kernel driver from loading so ours
## is used instead:
install rtl8192cu /bin/false
install rtl8192c_common /bin/false
install rtlwifi /bin/false
## There is also a new mainline driver starting with kernel v4.4
install rtl8xxxu /bin/false

And reboot

It still doesn't load the module at boot time.

But if I insert it manually again...

root@equuleus:/lib/modules/3.4.112-sun8i/kernel/net/wireless# insmod 8192cu.ko
root@equuleus:/lib/modules/3.4.112-sun8i/kernel/net/wireless#

Module loads and seems to be working.. even when the dongle can't associate with my AP.

???

I really don't understand what happens...

May be someone can enlighten me...?
 

Share this post


Link to post
Share on other sites

I do not know why but after every update of kernel my 8192cu module is dead again. So I go through it:

recompile on Opi Pc, install it, depmod -a, reboot with power remove,

then it works again....

 

maybe its the same for you?

gnasch

Share this post


Link to post
Share on other sites

I'm seeing the same thing as the OP on my OPi PC with a cheap Realtek 8188CUS wifi adapater.  Something seems to go wonky with the drivers and firmware after apt-get upgrade from 5.20 to 5.23.  After a clean install of 5.20 image (let it reboot for swap, fs resize, etc), plugged in Ethernet, apt-get update, apt-get upgrade to 5.23, reboot.   First, dmesg complains about missing firmware.  apt-get install armbian-firmware-full corrected that problem.  Reboot.  Use of nmtui results in stack trace, panic, and reboot. 

 

When I get home I'll post system data (dmesg, syslog, ifconfig, etc).

Share this post


Link to post
Share on other sites

@rgb 

 

Last night I did a fresh install of Armbian 5.20 for Orange Pi PC using the image off the main site, Armbian_5.20_Orangepipc_Debian_jessie_3.4.112.7z. I followed the same steps in my post above, except I did not insert my USB wifi dongle until after the updated 8192CU driver was installed. Ultimately the wifi network connection is working.

 

First I apt-get upgraded to 5.23, apt-get install armbian-firmware-full and network-manager, and rebooted.  Then I installed the updated RTL8192CU driver using the instructions listed below.  I powered off the OPi PC, inserted the USB dongle, unplugged the ethernet cable, powered up, and used nmtui to configure the wifi network and wifi is working.   I think the key was to not have the USB wifi dongle inserted until after the updated 8192CU driver was installed. 

 

 

sudo apt-get install dkms
git clone https://github.com/pvaret/rtl8192cu-fixes.git
sudo dkms add ./rtl8192cu-fixes
sudo dkms install 8192cu/1.10
sudo depmod -a
sudo cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/
sudo reboot

Share this post


Link to post
Share on other sites

I do not know why but after every update of kernel my 8192cu module is dead again. So I go through it:

recompile on Opi Pc, install it, depmod -a, reboot with power remove,

then it works again....

 

maybe its the same for you?

gnasch

It is expected since the only way to keep out-of-tree modules during kernel upgrades is DKMS, and it doesn't work properly due to kernel upgrade scheme that is used in Armbian.

rajprakash and gnasch like this

Share this post


Link to post
Share on other sites

@gnasch, rajprakash & zador.blood.stained:

Thank you for your answers.

Sorry about the delayed follow-up. Pretty busy at work lately.

I was checking again with a fresh install and following rajprakash's procedure everything worked like a charm.

I guess that the trick was the "sudo dkms install"; the module itself, was there  before (at least when I was testing).

Installing the drivers with a testing fresh 5.20 (online updated to 5.23), worked.

But... when I was trying to do the same in my "production" machine, I found another problem: some how, "sudo dkms install 8192cu/1.10" complained about an existing module already installed (I guess thats the original -not installed- module).

When I continued WITHOUT recompiling the module (default action), nothing worked again (symbols problems and so on).

Solution:

sudo dkms install --force 8192cu/1.10

So, you get a new compiled module, with the right symbols.

If you also play with many different network dongles, it worths checking the contains of /etc/udev/rules.d directory.

Anyway, for me it remains still a question: ¿Why is not preinstaled the module?

Share this post


Link to post
Share on other sites

I ask: would it be better to do: depmod -a and modprobe 8192cu.ko .... when compiling the driver ?. I, too, fail. If compiling the module works, but restarting fails to load the module. A script that would set the network and wifi settings would work well.

Share this post


Link to post
Share on other sites

Hello, I have managed to permanently run the 8192cu.ko module with the following script.

I also have it saved waiting for an apt-get upgrade to leave me without wifi. At that moment I will run the script and go. I hope it serves them.

 

Script wifi-compile-8192cu.sh:

#!/bin/bash
# compile and install 8192cu.ko in armbian
rm /etc/udev/rules.d/70-persistent-net.rules
cd /usr/src/linux-headers-$(uname -r)
make scripts
cd      
git clone https://github.com/pvaret/rtl8192cu-fixes.git
cd rtl8192cu-fixes
make ARCH=arm
rmmod 8192cu.ko
cp 8192cu.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless
depmod -a
insmod /lib/modules/$(uname -r)/kernel/drivers/net/wireless/8192cu.ko

other changes:

nano /etc/modprobe.d/8192cu.conf
================================
    options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

nano /etc/modules-load.d/modules.conf
=====================================
    #8189es
    8192cu

 

....run script wifi-compile.sh, modify /etc/modprobe.d/8192cu.conf, modify /etc/modules-load.d/modules.conf, and reboot.

Share this post


Link to post
Share on other sites

Today I've used fresh install Armbian_5.24_Orangepipc_Debian_jessie_default_3.4.113 and used my favorite WiFi dongle based on RTL8188CUS. But when tried to connect with nmtui, it halts the system and reboots. The WiFi is connected via a powered hub and the OPi PC has strong power supply too. It's not related to the power issue for sure. I've seen a lot of issues at the previous version, but guess that it was all solved before the version release.

 

EDIT: the driver issue still persists in this last version. When rebuild the driver, as described above, it works.

Share this post


Link to post
Share on other sites

I also got kernel panics on boot with a strong well known PS, when plugging in the usual ebay 8188CUS with the usual ID

I have apt upgraded to the latest

Tried above scripts, but get this error

 

.....
rtw_android.c:(.text+0x28): multiple definition of `is_broadcast_mac_addr'
/root/rtl8192cu-fixes/core/rtw_cmd.o:rtw_cmd.c:(.text+0x5c): first defined here
/root/rtl8192cu-fixes/os_dep/linux/rtw_android.o: In function `is_zero_mac_addr'                                                   :
rtw_android.c:(.text+0xb4): multiple definition of `is_zero_mac_addr'
/root/rtl8192cu-fixes/core/rtw_cmd.o:rtw_cmd.c:(.text+0xe8): first defined here
scripts/Makefile.build:432: recipe for target '/root/rtl8192cu-fixes/8192cu.o' f                                                   ailed
make[2]: *** [/root/rtl8192cu-fixes/8192cu.o] Error 1
Makefile:1368: recipe for target '_module_/root/rtl8192cu-fixes' failed
make[1]: *** [_module_/root/rtl8192cu-fixes] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.4.113-sun8i'
Makefile:584: recipe for target 'modules' failed
make: *** [modules] Error 2

 

Share this post


Link to post
Share on other sites

UPDATE: Ah fixed it.

Looks like asterix's install method (above) was required rather than the GIT method.

I also happened to do a make clean beforehand.

[INFO] The changes to ieee80211.h were required.

 

----------------------

 

Update: full reinstall of Armbian, apt update/upgrade, then I also made the changes recommended in another thread, changing extern to static for is_multicast_mac_addr , is_broadcast_mac_addr , is_zero_mac_addr in include/ieee80211.h

Recompile

Still getting similar errors :/

Please help!

 

/var/lib/dkms/8192cu/1.10/build/core/rtw_cmd.o:rtw_cmd.c:(.text+0xe8): first defined here
/var/lib/dkms/8192cu/1.10/build/os_dep/linux/ioctl_cfg80211.o: In function `is_multicast_mac_addr':
ioctl_cfg80211.c:(.text+0x0): multiple definition of `is_multicast_mac_addr'
/var/lib/dkms/8192cu/1.10/build/core/rtw_cmd.o:rtw_cmd.c:(.text+0x34): first defined here
/var/lib/dkms/8192cu/1.10/build/os_dep/linux/ioctl_cfg80211.o: In function `is_broadcast_mac_addr':
ioctl_cfg80211.c:(.text+0x28): multiple definition of `is_broadcast_mac_addr'
/var/lib/dkms/8192cu/1.10/build/core/rtw_cmd.o:rtw_cmd.c:(.text+0x5c): first defined here
/var/lib/dkms/8192cu/1.10/build/os_dep/linux/ioctl_cfg80211.o: In function `is_zero_mac_addr':
ioctl_cfg80211.c:(.text+0xb4): multiple definition of `is_zero_mac_addr'
/var/lib/dkms/8192cu/1.10/build/core/rtw_cmd.o:rtw_cmd.c:(.text+0xe8): first defined here
/var/lib/dkms/8192cu/1.10/build/os_dep/linux/rtw_android.o: In function `is_multicast_mac_addr':
rtw_android.c:(.text+0x0): multiple definition of `is_multicast_mac_addr'
/var/lib/dkms/8192cu/1.10/build/core/rtw_cmd.o:rtw_cmd.c:(.text+0x34): first defined here
/var/lib/dkms/8192cu/1.10/build/os_dep/linux/rtw_android.o: In function `is_broadcast_mac_addr':
rtw_android.c:(.text+0x28): multiple definition of `is_broadcast_mac_addr'
/var/lib/dkms/8192cu/1.10/build/core/rtw_cmd.o:rtw_cmd.c:(.text+0x5c): first defined here
/var/lib/dkms/8192cu/1.10/build/os_dep/linux/rtw_android.o: In function `is_zero_mac_addr':
rtw_android.c:(.text+0xb4): multiple definition of `is_zero_mac_addr'
/var/lib/dkms/8192cu/1.10/build/core/rtw_cmd.o:rtw_cmd.c:(.text+0xe8): first defined here
scripts/Makefile.build:432: recipe for target '/var/lib/dkms/8192cu/1.10/build/8192cu.o' failed
make[1]: *** [/var/lib/dkms/8192cu/1.10/build/8192cu.o] Error 1
Makefile:1368: recipe for target '_module_/var/lib/dkms/8192cu/1.10/build' failed
make: *** [_module_/var/lib/dkms/8192cu/1.10/build] Error 2
make: Leaving directory '/usr/src/linux-headers-3.4.113-sun8i'


 

Edited by ChrisAdmin
fixed it

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

1 1

  • Support the project

    We need your help to stay focused on the project.

    Choose the amount and currency you would like to donate in below.