Post Go back to editing

how to add wifi driver to kuiper Linux

Category: Software
Product Number: ADRV9364-Z7020+ADRV1CRR-BOB
Software Version: ADI-Kuiper-linux

Hi,

I have ADRV9364-Z7020+ADRV1CRR-BOB with preinstalled ADI-Kuiper linux version. I try to run usb wifi adapter based on RTL8812AU on it.

Using lsusb I see it. But standard version of kuiper linux doesnt have driver for it. Driver installation using git provides errors saying that kernel headers is wrong (boseji.com/.../).

I tried to build new kernel and add drivers directly to it (https://wiki.analog.com/resources/tools-software/linux-build/generic/raspberrypi). With TL-WN722N based on Atheros chipset it worked, but there is no drivers for rtl8812AU (if searching through menu config). 

Maybe someone can help me to solve this problem or point to right direction

Best regards,

Mindaugas

lsusb + KUiper linux kernel version

analog@analog:/linux_image_ADI-scripts $ lsusb
Bus 001 Device 004: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac 2T2R DB WLAN Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
analog@analog:/linux_image_ADI-scripts $ uname -r
5.10.0-98748-g8c24c9b87bea
analog@analog:/linux_image_ADI-scripts $

  • Hi,

    First of all, I recommend to use latest Kuiper image - 2021_R2Kuiper images do not contain kernel headers, but they can be added.

    After you boot Kuiper image, go in /usr/local/src, clone ADI linux repo, cd into it, checkout 2021_R2 branch and run "make adi_zynqmp_defconfig" then "make headers headers_install".

    Thanks,

    Stefan

  • Hi Stefan,

    Thanks for your answer.

    I cloned ADI linux repo to Kuiper linux, setted 2021_R2 branch. For defconfig I used xilinx_zynq_defconfig, because there is no adi_zynqmp_defconfig and after making headers install I see iaking and instalation process, but at the end then I try to install rtl 8812AU driver I get error. 

    analog@analog:~/Desktop/awus036ach/8812au-20210629 $ uname -r
    5.10.0-98748-g8c24c9b87bea
    analog@analog:~/Desktop/awus036ach/8812au-20210629 $
    analog@analog:~/Desktop/awus036ach/8812au-20210629 $ sudo ./install-driver.sh
    [sudo] password for analog:
    Your kernel header files aren't properly installed.
    Please consult your distro documentation or user support forums.
    Once the header files are properly installed, please run "sudo ./install-driver.sh"
    analog@analog:~/Desktop/awus036ach/8812au-20210629 $

    Same driver works perfectly on VM running Ubuntu

    Mindaugas

  • The adi_zynqmp_defconfig file exists in repo: https://github.com/analogdevicesinc/linux/blob/master/arch/arm64/configs/adi_zynqmp_defconfig.


    Also make sure that the location of repo is /usr/local/src/linux and that inside  /lib/modules/<uname -r>  there are two shortcuts "build" and "source" that point to that folderYou can create them with:

    rm -rf ./build ./source
    
    ln -s /usr/local/src/linux ./build
    
    ln -s /usr/local/src/linux ./source

  • hi,

    After successful  headers installation I get additional errors when trying to install wifi drivers. The problem as I understand is with Modules. 

    make ARCH=arm CROSS_COMPILE= -C /lib/modules/5.10.0-98725-g3eae70065be9-dirty/build M=/home/analog/Desktop/rtl8812au modules
    make[1]: Entering directory '/usr/local/src/linux'
    WARNING: Symbol version dump "Module.symvers" is missing.
    Modules may not have dependencies or modversions.
    MODPOST /home/analog/Desktop/rtl8812au/Module.symvers
    /bin/sh: 1: scripts/mod/modpost: not found
    make[2]: *** [scripts/Makefile.modpost:111: /home/analog/Desktop/rtl8812au/Module.symvers] Error 127
    make[1]: *** [Makefile:1709: modules] Error 2
    make[1]: Leaving directory '/usr/local/src/linux'
    make: *** [Makefile:1724: modules] Error 2

    When building new kernel I saw that if I choose at menuconfig the driver using <M> it doesn't load. Only chooses with <*> at make menucofig does the trick and you can use the driver. Maybe that's the problem. I'll try to add driver for 8812AU directly to kernel.

    Best regards,

    Mindaugas

  • Shortcuts from /lib/modules/<uname -r> seems ok, but there is missing "Module.symvers" file.

    This means that the problem is with the modules. Most probably you'll need to build modules locally:

    cd /usr/local/src/linux 

    make modules 

    If still doesn't work, you can also try "make modules_install" afterwards.

    Thanks,

    Stefan

  • Hi,

    I build modules and installed them.

    Compilation of the driver starts and compiles most of the files, but at the end  same Module.symvers error appears.

    CC [M] /home/analog/awus036ach/8812au-20210629/hal/phydm/txbf/haltxbfjaguar.o
    CC [M] /home/analog/awus036ach/8812au-20210629/platform/platform_ops.o
    LD [M] /home/analog/awus036ach/8812au-20210629/8812au.o
    MODPOST /home/analog/awus036ach/8812au-20210629/Module.symvers
    ERROR: modpost: "cfg80211_external_auth_request" [/home/analog/awus036ach/8812au-20210629/8812au.ko] undefined!
    ERROR: modpost: "cfg80211_rx_mgmt_khz" [/home/analog/awus036ach/8812au-20210629/8812au.ko] undefined!
    ERROR: modpost: "cfg80211_mgmt_tx_status" [/home/analog/awus036ach/8812au-20210629/8812au.ko] undefined!
    ERROR: modpost: "__cfg80211_alloc_reply_skb" [/home/analog/awus036ach/8812au-20210629/8812au.ko] undefined!