ZHCU913A September   2020  – October 2020 WL1801MOD , WL1805MOD , WL1807MOD , WL1831 , WL1831MOD , WL1835MOD , WL1837MOD

 

  1.   商标
  2. 1驱动程序支持的功能
  3. 2WL18xx Linux 驱动程序架构概述
  4. 3平台集成
    1. 3.1 电路板器件树所需的配置 (DTS/DTB)
    2. 3.2 针对 TI WLAN 驱动程序配置内核
    3. 3.3 电路板器件树所需的配置 (DTS/DTB)
    4. 3.4 使用构建实用程序构建 R8.8 版本
    5. 3.5 分别构建 WiLink8 驱动程序版本二进制文件
  5. 4引导和 WLAN 启动
    1. 4.1 配置 WiLink8 目标
  6. 5测试基本的 WLAN 功能
    1. 5.1 STA 模式
      1. 5.1.1 非安全 AP 的基站模式流程
      2. 5.1.2 安全 AP 的基站模式流程
      3. 5.1.3 确认连接
    2. 5.2 AP 模式
      1. 5.2.1 AP 模式流程
      2. 5.2.2 启动 AP
      3. 5.2.3 确认连接
    3. 5.3 多角色(AP +STA 模式)
      1. 5.3.1 多角色连接的一般流程
    4. 5.4 IEEE802.11s 网状网络模式
  7. 6参考文献
  8.   A 常见问题解答和调试提示

使用构建实用程序构建 R8.8 版本

以下部分详细介绍了使用构建实用程序构建 R8.8 版本的步骤。构建实用程序提供了统一的方法来构建、更新和集成 WL18xx WLAN 驱动程序和模块。此步骤需要在针对目标平台配置内核并对 DTS/B 文件进行必要更改后完成。WiLink8 R8.8 版本基于 Linux 内核版本 4.19,并且不支持之前内核版本的反向端口

构建实用程序集成了操作 WL18xx 器件所需的 WiLink8 WLAN 模块以及驱动程序。它还包含用于 WPA 请求的额外构建软件包和基于开源但针对 WL18xx 器件定制的 hostapd。实用程序还集成了用于测试的工具、用于演示 Wi-Fi 操作的示例脚本以及器件固件。脚本可用于构建整个模块和内核,或者能够构建各个模块。

构建实用程序脚本中所含的一般过程如下所示:

  1. 下载构建实用程序软件包
  2. 配置设置
  3. 克隆适用于特定版本 (R8.8) 的源代码和驱动程序组件
  4. 使用 verify_kernel.sh 添加适当的内核配置
  5. 应用内核补丁(只需一次)
  6. 构建所有版本的二进制文件或各个组件
  7. 将生成的二进制文件安装至目标文件系统

脚本将下载相关组件的以下源文件。如需了解各个组件确切版本的详细信息,请参阅 WiLink8 R8.8 版本说明。下载的源文件保存在 ./build-utilities/src 目录中。

目录 内容
fw_download 包含版本随附的 WiLink8 器件固件
hostap wpa_supplicant 和 hostapd 的源代码。它们依赖于 opnessl 和 libnl,后两者也会下载到 ./build-utilities/src 下
iw iw 工具的源代码。
openssl 包含克隆的 openssl 源代码
scripts_download 用于运行 WL18xx 的各种脚本
ti_utils TI 提供的各种实用程序。
wireless-regdb 无线管制数据库
  1. 下载构建脚本并切换至 R8.8 分支。

    git://git.ti.com/wilink8-wlan/build-utilites.git 克隆构建实用程序,示例如下:

    user@ubuntu:~/ti-sdk-am335x-evm-07.00.00.00$ cd ~/wl8-build/
    user@ubuntu:~/wl8-build$ git clone git://git.ti.com/wilink8-wlan/build-utilites.git
    Cloning into 'build-utilites'...
    remote: Counting objects: 888, done.
    remote: Compressing objects: 100% (412/412), done.
    Recremote: Total 888 (delta 490), reused 761 (delta 456)
    Receiving objects: 100% (888/888), 12.82 MiB | 5.10 MiB/s, done.
    Resolving deltas: 100% (490/490), done.
    user@ubuntu:~/wl8-build$ cd build-utilites/
    user@ubuntu:~/wl8-build/build-utilites$ ls
    build_wl18xx.sh  configuration/  configuration.sh  patches/  README  setup-env.sample  sudo_build_wl18xx.sh  verify_kernel_config.sh

    使用以下命令切换至 R8.8 分支:

    user@ubuntu:~/wl8-build/'build-utilites'$ git checkout r8.8

    克隆完成后,构建实用程序的以下脚本会出现在 ./build-utilities 文件夹中。下面提供了相关脚本的详细信息:

    setup-env.sample 示例环境设置文件。应复制并重命名为 setup-env
    configuration.sh 包含用于下载源文件的 Git 存储库地址和 Git 标签的配置详细信息。
    build_wl18xx.sh 这是主脚本,该脚本会使用 setup-env 和 configuration.sh 以及各个用户参数来下载、清理、更新或构建用户选择的特定组件。
    sudo_build_wl18xx.sh 与使用 sudo 选项的 build_wl18xx.sh 相同。请注意,如果将该脚本的“sudo”版本用于“init”选项,相关目录会变为归 root 所用。
    verify_kernel_config.sh 用于验证内核配置的脚本。

    以下各节将使用 build-wl18xx.sh 脚本来清理、构建和安装所有组件或特定组件。构建特定组件的情况将在稍后部分进行讨论。使用 –h 参数则可以显示可用的命令选项。

    ./build_wl18xx.sh -h 

    下面显示了可用的选项。

    user@ubuntu:~/R8.8/build-utilites$ ./build_wl18xx.sh -h 
    This script builds all/one of the relevant wl18xx software packages.
    
    Usage :  
    
    Building full package : Build all components except kernel, dtb 
        ./build_wl18xx.sh init         	   	                  [ Download and Update w/o build  ] 
                          update       R8.8       	          [ Update to specific TAG & Build ] 
                          clean               	              [ Clean & Build                  ] 
                          check_updates           	          [ Check for build script updates ] 
    
    Building specific component : 
                          hostapd                 	          [ Clean & Build hostapd          ] 
                          wpa_supplicant          	          [ Clean & Build wpa_supplicant   ] 
                          modules                 	          [ Clean & Build driver modules   ] 
                          firmware                	          [ Install firmware binary        ] 
                          scripts                 	          [ Install scripts                ] 
                          utils                   	          [ Clean & Build scripts          ] 
                          iw                      	          [ Clean & Build iw               ] 
                          openssl                 	          [ Clean & Build openssll         ] 
                          libnl                   	          [ Clean & Build libnl            ] 
                          wireless-regdb          	          [ Install wireless regdb         ] 
                          patch_kernel            	          [ Apply provided kernel patches  ] 
                          kernel <defconfig filename>         [ Clean & Build Kernel 	       ] 
                          kernel_noclean <defconfig_filename> [ Build Kernel w/o clean         ] 
                          patch_bbbe14_dts [Patch bbb black dts file to add e14 cape support]
  2. 创建 setup-env 文件。

    “setup-env.sample”文件用作“setup-env”的基础,后者包含特定于用户的环境变量。用户应将 setup-env.sample 复制到 setup-env 并根据特定于用户的环境编辑相关变量。用户应编辑 setup-env 文件,以指向内核和工具链所在的正确目录。下面是一个示例文件:

    #                            \\\// 
    #                           -(o o)- 
    #========================oOO==(_)==OOo=======================
    # This file contains the exports needed for automating the
    # build process of WLAN components.
    # Place this file in the same directory with wl18xx_build.sh
    # build scripts.No need to run 'source setup-env', the build
    # scripts will perform it internally. 
    #===========================================================
    # User specific environment settings - use full PATH
    
    # TOOLCHAIN_PATH setting is mandatory. ex: TOOLCHAIN_PATH=/opt/ti-processor-sdk-linux-am335x-evm-06.00.00.07/linux-devkit/sysroots/x86_64-arago-linux/usr/bin
    export TOOLCHAIN_PATH=
    
    # ./fs folder will be created if ROOTFS is set to DEFAULT 
    export ROOTFS=DEFAULT
    
    # KERNEL_PATH setting is mandatory. ex: KERNEL_PATH=/opt/ti-processor-sdk-linux-am335x-evm-06.00.00.07/board-support/linux-4.19.38+gitAUTOINC+4dae378bbe-g4dae378bbe
    export KERNEL_PATH=
    
    # CROSS_COMPILE setting is mandatory
    export CROSS_COMPILE=arm-linux-gnueabihf-
    
    # ARCH setting is mandatory 
    export ARCH=arm
    [ "$TOOLCHAIN_PATH" != "" ] && export PATH=$TOOLCHAIN_PATH:$PATH

    setup-env 文件应与构建脚本(build_wl18xx.sh 等)位于同一目录下。

  3. 下载源(又称“初始化”)库。

    以下步骤会下载构建所需的整个源代码。首次安装时,这可能需要更长的时间。后续更新时,时间会短一些。

    user@ubuntu:~/wl8-build$ cd build-utilites
    user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh init
    
  4. 验证并设置所需的内核配置。

    WiLink8 WLAN 功能要求在内核配置中启用一些设置。这可以使用构建实用程序软件包中提供的 verify_kernel_config.sh 实用程序来设置/验证,如下所示:

    user@ubuntu:~/wl8-build/build-utilites$ ./verify_kernel_config.sh <def_config file>

    示例:user@ubuntu:~/wl8-build/build-utilites$ ./verify_kernel_config.sh /opt/ti-processor-sdk-linux-am335x-evm-06.00.00.07/board-support/linux-4.19.38+gitAUTOINC+4dae378bbe-g4dae378bbe/arch/arm/configs/tisdk_am335x-evm_defconfig

  5. 应用所需的内核补丁。

    WiLink8 驱动程序包中含有一系列补丁,需要应用这些补丁,才能启用完整的功能。这些补丁起到了功能增强和错误修复的作用。只有首次构建内核映像来启用 WiLink8 WLAN 时,才需要完成此步骤。

    user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh patch_kernel
  6. 构建内核。

    以下命令将会构建内核。若要包含特定于 TI WiLink8 的补丁,需要重建内核。用户可以直接从 SDK 构建内核,也可以使用构建脚本来构建内核。内核 defconfig 文件名作为参数传递。

    user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh kernel <defconfig file>
    Ex: user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh kernel tisdk_am335x-evm_defconfig

    使用 BeagleBone Black Cape 和 BeagleBone 进行开发时,需要执行以下步骤。

    注: 内核映像 zImage 也随着安装文件系统一同构建。
  7. 应用补丁并构建 BeagleBone DTB 文件(可选)。

    将 BeagleBone Black 与 Element-14 无线 Cape 搭配使用时需要用到的 DTS/B 文件也可以使用 build_utilities 来生成。应用 BeagleBone Black dts 文件来使用以下命令并通过 WL1837MOD 添加对 Element-14 无线 Cape 的支持

    user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh patch_bbbe14_dts

    构建具有 Element 14 无线 Cape 的 Beaglebone Black dts 来生成所需的 dtb 文件。

    user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh bbbe14_dtb
  8. 构建版本二进制文件。

    每个 WiLink8 驱动程序版本都带有特定的标签。对于 Wilink8 Driver R8.8 驱动程序,该标签为“R8.8”。若要检出 R8.8 版本、进行构建并安装到目标文件系统中,则需要使用以下命令(假定具有访问文件系统所需的根权限):

    user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh update R8.8
  9. 安装 WiLink8 版本二进制文件。

在此阶段,WiLink8 驱动程序和内核的所有组件应该都已构建完毕。输出库、二进制文件、示例脚本、固件和 TI 实用程序等均位于 setup_env 文件中指定的文件夹内(默认为 ./build-utilities/fs)。这些均可直接安装。请注意,以下步骤假定默认的 SDK 映像已安装到 SD 卡中。使用以下示例命令将 fs 文件夹从 ./build-utilities 目录复制到目标位置。

sudo cp –p ./fs/* <rootfs path on SD card>/