This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/TIDC-WL1837MOD-AUDIO-MULTIROOM-CAPE: Building 8.7_SP3 wifi tools using Yocto/Arago

Part Number: TIDC-WL1837MOD-AUDIO-MULTIROOM-CAPE
Other Parts Discussed in Thread: TEST2

Tool/software: Linux

I am trying to build the wpa-supplicant-wl18xx Arago recipe with WiFi MESH support turned on.  The current recipe uses the correct R8.7_SP3 branch, but not the correct config file for wpa_supplicant.  In the Build Scripts mentioned here:

processors.wiki.ti.com/.../WL18xx_System_Build_Scripts

The wpa_supplicant build uses the android.config for the build, but the Yocto recipe uses something else.  I created a bbappend file to apply the android.config to the wpa-supplicant-wl18xx build.  When I do that, I get:

| NOTE: make -j 8
| ../src/drivers/driver_nl80211.c:17:10: fatal error: netlink/genl/genl.h: No such file or directory
|  #include <netlink/genl/genl.h>
|           ^~~~~~~~~~~~~~~~~~~~~
| compilation terminated.

However libnl-3.2.29 is being built as a dependency.  The TI System Build Scripts use this git repo (git://github.com/tgraf/libnl.git) whereas Arago downloads from https://github.com/thom311/

I am building for the BeagleBone Black and the StreamUnlimited WiFi Cape.  Wifi Station mode is working great.  Now I just need Mesh to work.

I'm using Arago with processor-sdk-04.02.00.09.

Has anyone managed to build Yocto/Arago including WiFi mesh?

Thanks,
Matt

  • Matt,
    I am not aware of compile error mentioned above. In sdk 4.x.9 , You can enable WiFi MESH by enabling CONFIG_MAC80211_MESH in kernel config. In tree wl8 drivers should support mesh.

    Thanks
    Saurabh
  • It turns out I had to patch wpa_supplicant in a bbappend file like this:

    Index: wpa_supplicant/Makefile
    ===================================================================
    --- wpa_supplicant.orig/Makefile
    +++ wpa_supplicant/Makefile
    @@ -26,6 +26,9 @@ CFLAGS += $(EXTRA_CFLAGS)
     CFLAGS += -I$(abspath ../src)
     CFLAGS += -I$(abspath ../src/utils)
     
    +LIBS += $(shell $(PKG_CONFIG) --libs libnl-3.0)
    +CFLAGS += $(shell $(PKG_CONFIG) --cflags libnl-3.0)
    +
     -include .config
     
     ifndef CONFIG_NO_GITVER
    @@ -1827,3 +1830,7 @@ clean:
            rm -f libwpa_test1 libwpa_test2
     
     -include $(OBJS:%.o=%.d)
    +
    +LIBS := $(filter-out -lnl,${LIBS})
    +LIBS := $(filter-out -lnl-genl,${LIBS})
    +

    That resolved the wpa_supplicant build error.

    In addition to turning on 802.11s in the kernel, it's also essential to use TCP RENO congestion control:

    CONFIG_TCP_CONG_ADVANCED=y

    CONFIG_DEFAULT_RENO=y
    CONFIG_DEFAULT_TCP_CONG="reno"

    I was only getting 1.6Mbps on my Mesh network when using the default "cubic" congestion control protocol.  Using Reno, I get around 27Mbps.  Looking good!

  • Hi Matt,

    Thank you for letting you know. Best of luck with your project !

    Saurabh