usb wlan module rtl8192cu driver on efusA9 Quad core

  • Hi @all,

    I have an EdiMax USB Wlan adapter which is based on Realtek "RTL8192CU" Wlan chip module. I configured the efusA9 Kernel to include the driver for that chip "RTL8192CU" using yocto. However, I followed exactly the steps to build up "fus-image-std" in "FSiMX6_FirstSteps_eng.pdf"

    Before I build up the image, I called the kernel menuconfig using "bitbake -c menuconfig linux-fus" to add the "RTL8192CU" driver. After sometime I obtained the configuration window.

    Once the window opened, I chose "Device Driver"--> "Network device support" -->"Wireless LAN" -->"Realtek rtlwifi family of devices" --> "Realtek RTL8192CU/RTL8188CU USB ...." . I chose to build them statically in the kernel not as modules. I saved and built the image. Everything was smooth.

    I plugged my USB Wlan stick but dmesg shows a problem with a certain firmware "rtl8192cufw_TMSC.bin" -->

    1. root@fsimx6:~# dmesg | grep rtl
    2. [ 1.714039] usbcore: registered new interface driver rtl8192cu
    3. [ 2.666642] rtl8192cu: Chip version 0x11
    4. [ 2.768411] rtl8192cu: MAC address: 74:da:38:f8:aa:b4
    5. [ 2.772179] rtl8192cu: Board Type 0
    6. [ 2.774644] rtl_usb: rx_max_size 15360, rx_urb_num 8, in_ep 1
    7. [ 2.779217] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw_TMSC.bin
    8. [ 2.788271] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
    9. [ 2.789735] usb 1-1.1: Direct firmware load for rtlwifi/rtl8192cufw_TMSC.bin failed with error -2

    The very strange is that when I perform:

    1. iw dev wlan0 scan

    I can get almost every wlan router in the round but I did not understand why I can not connect to my router.

    any ideas please? Do i need to configure extra parameters in kernel to get the rtl8192cu driver correctly to work?

    I attached the files (/etc/wpa_supplicant.conf) and (/etc/network/interfaces), knowing that I use the same configuration files to connect to my router on another RPI3 that has yocto system running.

    When I perform "ifup wlan0" on the efusA9 module I get also this issue:

    Thanks in advance

    kind regards

  • Firmware files are usually not embedded in the Linux kernel, they are part of the root filesystem. On the other hand if you compile your driver as part of the kernel, then it wants to load the firmware immediately when it starts. Which fails because at that time the root filesystem is not yet mounted.

    From our point of view it is only possible to have WLAN drivers (that require a firmware) to be built as kernel modules. Then they are loaded from the root filesystem, too, and then the firmware is always available to be loaded when they start.

    There may be an option to embed the firmware in the kernel, but in reality this is often a no-go as the license of the firmware often collides with the GPLv2 of the kernel and must not be embedded with the kernel code.

    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.