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: WL1835MOD

Other Parts Discussed in Thread: WL1835MOD, WL1837MOD

Tool/software: Linux

Where can I find a kernel where the wl18xx drivers and the specific MAC80211 and CFG80211 modules are intergrated so I can build that kernel in Yocto? We need for our project a Yocto linux system and a WiFi mesh network.

Whatever version I tried until now or it doesn't compile (git://git.ti.com/wilink8-wlan/wl18xx.git kernel) or it doesn't recognize mode 5 in wpa_supplicant. (git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git)

When I use the build-utilities I always get compilile issues (git://git.ti.com/wilink8-wlan/build-utilites.git)

Is there a linux kernel that is up to date to compile for working with the the TI WL1835MOD or TI WL1837MOD mesh?

Paul Becue, SoundTalks. paul.becue@gmail.com 

  • Paul,
    For latest wl8 driver version , you may use build utilities with tag R8.7_SP3. Please keep in mind backports work for kernel version from 3.12 - 4.4. If you are using more recent version of kernel , you will see compile errors. In case you use more recent version of kernel , in-built wilink8 driver should support mesh - you might need to update hostap ( which again you can do using build utilities )

    Thanks
    Saurabh
  • Saurabh
    Thank you for your answer.
    You say a more recent version of the kernel, do you mean the Linux mainline kernel or the kernel from TI (git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git) or the two of them? I am using kernel 4.14 and do the proof of concept with a Beaglebone Black Wireless. For the devicetree I need a recent kernel.
    In the documentation (swaa166.pdf of TI) they are speaking of TI optimizations for 802.11s mesh network, are they in these kernels?
    What is the other optimized code? What other programs from TI do I have to use for having an optimized 802.11s mesh?
    The issue I always get is with wpa_supplicant complaining that he doesn't know mode 5:
    wpa_supplicant -e /usr/share/wl18xx/entropy.bin -i mesh0 -D nl80211 -c /home/root/mesh_supplicant.conf
    Successfully initialized wpa_supplicant
    Line 8: too large mode (value=5 max_value=4)
    Line 8: failed to parse mode '5'.
    Line 11: failed to parse network block.
    Failed to read or parse configuration '/home/root/mesh_supplicant.conf'.
    with mesh_supplicant.conf:
    ctrl_interface=/var/run/wpa_supplicant
    ctrl_interface_group=0
    update_config=1
    country=BE
    network={
    ssid="bqwl18xx"
    mode=5
    frequency=2432
    key_mgmt=NONE
    }

    I you could answer these questions I think all our issues are solved. We want to use the TI module or WL1835MOD, or WL1837MOD for our new product for the agriculture industry. We plan to produce 10000 devices the next few years.
    First we were looking for an ad-hoc device, but we didn't find. Now we are looking at your devices. It is for a WiFi mesh network. If you have a better solution, you're wellcome.
    Paul Becue. Thx!
  • Hello Saurabh
    I did some further research on wpa_supplicant and found the line of code where the issue with mode=5 resides:
    It is in the file:
    git.ti.com/.../config.c
    on line: 1667:
    { INT_RANGE(mode, 0, 4) },
    What do I have to do if I want to create a mesh network as described in swaa166.pdf (www.ti.com/.../swaa166.pdf) ?
    Do I take the wrong branch? Is the document swaa166.pf not up to date? Is it replaced by another document?
    Is an 802.11s mesh not up to date and is there a replacement?
    What do you suggest?
    In our company we have to decide about the mesh technology we will use, so I hope you can give us a good suggestion.
    Thank you very much.
    Paul Becue.
  • Hi Paul,
    If i understood correctly , you are using kernel 4.1.x but using device tree file from latest kernel. To resolve your issue i suggest following :
    - Make sure CONFIG_MAC80211_MESH is defined in kernel
    - Consult processors.wiki.ti.com/.../WL18xx_System_Build_Scripts and clone the repositories using tag R8.7_SP3
    - run verify script that comes with build utilities to ensure all necessary kernel configs are enabled in your kernel
    - Modify setup-env as specified in the wiki and build all binaries .
    - replace existing binaries with built binaries on your fs

    Saurabh
  • Hello Saurabh

    I am not using kernel 4.1.x but kernel 4.14.20 from TI, BRANCH = "ti-lsk-linux-4.14.y", commit ceefd552693

    I am following as much as possible the guide of WL18xx_System_Build_Scripts for the kernel config.

    I start the mesh from a python script but I have issues with wpa_supplicant as I wrote before.

    When I look in the source code I see that mode=5 is not possible in the source code, the maximum value is 4.

    Are you still supporting a meshpoint mesh, I have the impression that it has gone in the code of TI?

    When I start the mesh without wpa_supplicant, I have no issues, but the mesh is not working good. It is a mesh that doesn't go farther than 1 hop an e.g. a ping last very very long. I cannot ssh to the next hop. 

    Can you give me a honest answer: are you still supporting a 802.11s mesh?

    Thx

    Paul Becue.

  • Hi Paul,
    "Can you give me a honest answer: are you still supporting a 802.11s mesh?"
    Yes, absolutely :) . We do support 802.11s from R8.7 onwards : software-dl.ti.com/.../release_notes_R8_7.html

    As i mentioned in the previous answer, you will need to update the binaries to be able to get mesh working . Most of the changes for mesh are in hostap , driver and firmware. In case your supplicant does not recognize mode=5, make sure you update binaries to R8.7_SP3.

    Saurabh
  • Saurabh

    The version  see on the build I made a few days ago, build with yocto:
    wlcore: firmware booted (Rev 8.9.0.0.76)
    Is this a wrong version? It is more than 8.7? Or is this something completely different?
    Thx
    Paul Becue.
  • Paul, Firmware version seems ok. Can you also pls share version of hostapd, wpa_supplicant ?

    Thanks

    Saurabh

  • This is in my defconfig for wpa_supplicant:
    # 80211s mesh
    CONFIG_MESH=y
    CONFIG_80211_COMMON=y

    and
    CONFIG_SAE is automatically added by the Makefile:
    wpa_supplicant/Makefile:
    ifdef CONFIG_MESH
    NEED_80211_COMMON=y
    NEED_SHA256=y
    NEED_AES_SIV=y
    NEED_AES_OMAC1=y
    NEED_AES_CTR=y
    CONFIG_SAE=y
    CONFIG_AP=y
    CFLAGS += -DCONFIG_MESH
    OBJS += mesh.o
    OBJS += mesh_mpm.o
    OBJS += mesh_rsn.o
    endif

    and the repo ref is:
    R8.7_SP3-devel-ti+gitAUTOINC+ee8fbdb840-r9b
    with:
    # Tag: R8.7_SP3
    SRCREV = "ee8fbdb840d95e048f58fb62bf3b5472041b5417"
    BRANCH = "upstream_25_rebase"
    repo:
    git://git.ti.com/wilink8-wlan/hostap.git;protocol=git;branch=${BRANCH}
    This is the build I used in Yocto for my wpa_supplicant build.

    Thx
    Paul Becue
  • Saurabh
    Is it necessary to change the wl18xx-conf.bin by a wl1835MOD config? Because I used a standard wl18xx-coonf.bin. I didn't change it or overwrite it with git.ti.com/.../WL1835MOD_INI.ini as described in www.ti.com/.../swra489.pdf .
    Is it necessary to do this? Maybe this is the issue?
    Thx.
    Paul Becue.
  • Saurabh
    When loading the firmware, I have always the issue:
    [16475.885227] wl18xx_driver wl18xx.0.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with error -2
    Is this an error or not? And what to do with it?
    Thx.
    Paul Becue.
  • Saurabh
    I checked out the build-utilities, but I didn't find the tag R8.7_SP3:

    mkdir -p /data/tmp/
    cd /data/tmp
    git clone git://git.ti.com/wilink8-wlan/build-utilites.git
    cd build-utilities

    git log

    commit 452f975551316497ef5877b366c44d15a1e5998b
    Author: Guy Mishol <guym@ti.com>
    Date: Sun May 14 10:56:12 2017 +0300

    configuration.sh : update wireless-regdb branch

    update wireless-regdb to latest tag (master-2017-03-07)

    Signed-off-by: Guy Mishol <guym@ti.com>

    commit b8e1720d9f98f04689f23556f66907a0031e9047
    Author: White <d-white@ti.com>
    Date: Wed Mar 29 14:44:07 2017 -0500

    Updated the beaglebone cape patch files

    commit a45a32efb204941a18f06e1fd20c3374dfd7f359
    Author: Yaniv Machani <yanivma@ti.com>
    Date: Wed Jul 20 23:18:24 2016 +0300

    README : fix typo in the .sh name

    Signed-off-by: Yaniv Machani <yanivma@ti.com>

    commit 21bbcc2ee0c53e21ee8d28c474b8d1336492e19d
    Author: Guy Mishol <guym@ti.com>
    Date: Mon Jun 6 13:51:39 2016 +0300

    build.sh : remove redundant build option

    Signed-off-by: Guy Mishol <guym@ti.com>

    commit 0cbb854fde24bd7b5d56ea2da9160472eff25247
    Author: Guy Mishol <guym@ti.com>
    Date: Sun Jun 5 18:04:59 2016 +0300

    configuration.sh : remove redundant brnach

    Signed-off-by: Guy Mishol <guym@ti.com>

    commit bcdfb3b62ef2ec8c1223b8bbc170d8373bad3a69
    Merge: 08c8297 792466b
    Author: Yaniv Machani <yanivma@ti.com>
    Date: Tue May 31 11:08:57 2016 +0300

    Merge branch 'internal'

    commit 792466bede1582d4d0a78986b22faae8c28e9cf9
    Author: Yaniv Machani <yanivma@ti.com>
    Date: Tue May 31 10:52:06 2016 +0300

    configuration.sh
    update default branches

    git tag

    delete
    ol_r8.a7.01
    ol_r8.a7.02
    ol_r8.a8.01
    ol_r8.a9.01
    ol_r8.a9.01_32
    ol_r8.a9.02
    ol_r8.a9.02_32
    ol_r8.a9.03_32
    ol_r8.a9.04
    ol_r8.a9.04_32
    ol_r8.a9.05
    ol_r8.a9.06
    ol_r8.a9.07
    ol_r8.a9.08
    ol_r8.a9.09
    ol_r8.a9.10
    ol_r8.a9.11
    ol_r8.a9.12
    ol_r8.a9.13
    ol_r8.a9.14
    ol_r8.a9.15
    ol_r8.a9.17

    ---> I don't see a tag R8.7_SP3, even not a ol_r8.a7.03

    git remote show origin

    * remote origin
    Fetch URL: git://git.ti.com/wilink8-wlan/build-utilites.git
    Push URL: git://git.ti.com/wilink8-wlan/build-utilites.git
    HEAD branch: master
    Remote branches:
    build-temp tracked
    ci_build tracked
    internal tracked
    linux-3.2 tracked
    linux-alk tracked
    linux-test tracked
    linux_all tracked
    linux_test_crda tracked
    master tracked
    Local branch configured for 'git pull':
    master merges with remote master
    Local ref configured for 'git push':
    master pushes to master (up to date)

    Saurabh
    What do you mean with tag R8.7_SP3, is it another repository?
    Thx.
    Paul Becue.
  • In Yocto I used the hostapd and wpa_supplican from meta-arago-extra: ;a=tree;f=meta-arago-extras;hb=master

    I adapted the defconfig for wpa_supplicant by adding:

    # 80211s mesh

    CONFIG_MESH=y

    CONFIG_80211_COMMON=y

    and renamed the recipe to wpa-supplicant-wl18xx-80211s.bb

    I will send you the code in attachment. It is a zip file renamed to jpg. 

    You will see that is the tag R8.7_SP3 or commit: ee8fbdb840d95e048f58fb62bf3b5472041b5417

    All the changes I did the mesh is not yet working.

    I hope you can help me a bit further.

    Thx

    Paul Becue.

    Attachment: 

  • Paul,
    Regarding conf file - it consist mostly of radio parameters . You should configure it for your module - although that doesn't seem to be the root cause for your issue. consult : processors.wiki.ti.com/.../WiLink8_WLAN_Demo:_Linux

    Regarding NVS file : This file contains MAC addresses. It's absence should not cause any issues. You may create one with MAC address: processors.wiki.ti.com/.../WL18xx_Writing_MAC_address

    build-utilities does not have R8.7_SP3. It is used to clone other repositories that do. Did you run this command : ./build_wl18xx.sh update R8.7_SP3 ?

    Saurabh
  • Saurabh
    Thank you for the aswer.
    Half an hour ago I found an issue with the wpa_supplicant Yocto recipe. The defconfig is not good overwritten by the recipe. Tomorrow I will look for that. So in the build there is no CONFIG_MESH=y . It is in the recipe but is not good added.
    Could this be the problem?
    If I use a Linux 4.14.20 kernel with the wl18xx drivers with the right defconfig.
    and a good wpa_supplicant, should it work then? I checked the commit and that is good.
    What do you think?
    Thx.
    Paul Becue.
  • Hi Paul, CONFIG_MESH is enabled

    Saurabh
  • Saurabh

    I made some advances. I could build wpa_supplicant with mode=5 enabled and I managed to use the script start_mesh.sh form swaa166.pdf.

    That is an advance.

    But I have not really a mesh. I see only the devices that are 1 hop far.

    This is the log of the starting of the mesh:

    adding mesh0 interface
    Successfully initialized wpa_supplicant
    Using interface mesh0 with hwaddr 04:a3:16:5e:78:85 and ssid ""
    mesh0: interface state UNINITIALIZED->ENABLED
    AP-ENABLED
    mesh0: joining mesh bqwl18xx
    mesh0: CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed [id=0 id_str=]
    mesh0: MESH-GROUP-STARTED ssid="bqwl18xx" id=0
    mesh0: mesh plink with 80:30:dc:4f:94:a3 established
    mesh0: ===> PLINKS NUMBER: 1
    mesh0: MESH-PEER-CONNECTED 80:30:dc:4f:94:a3
    mesh0: mesh plink with 80:30:dc:e9:bf:f7 established
    mesh0: ===> PLINKS NUMBER: 2
    mesh0: MESH-PEER-CONNECTED 80:30:dc:e9:bf:f7

    How is the routing protocol enabled? This result is with the kernel 4.14.20 from 

    git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git

    Why there is only 1 hop far mesh network?
    Thx.

    Paul Becue.

  • Saurabh
    Thank you for your help.
    I have a mesh network now. Very elementary but I can ssh two hops far.
    But the range is small. How can I have a maximal range? What are the radio settings that are important for having the maximum output power.
    Is it possible to have 20 dBm?
    hank you very much.
    Paul Becue.
  • Hi Paul,
    Good to know you have mesh network up and running. Please consult wl8xxmod datasheet for typical tx power for different modulations/rates: www.ti.com/.../wl1837mod.pdf . You can run PLT tests on your device to check tx power : processors.wiki.ti.com/.../WL18xx_TX_Testing

    Saurabh