ZHCU913A September 2020 – October 2020 WL1801MOD , WL1805MOD , WL1807MOD , WL1831 , WL1831MOD , WL1835MOD , WL1837MOD
以下部分详细介绍了使用构建实用程序构建 R8.8 版本的步骤。构建实用程序提供了统一的方法来构建、更新和集成 WL18xx WLAN 驱动程序和模块。此步骤需要在针对目标平台配置内核并对 DTS/B 文件进行必要更改后完成。WiLink8 R8.8 版本基于 Linux 内核版本 4.19,并且不支持之前内核版本的反向端口。
构建实用程序集成了操作 WL18xx 器件所需的 WiLink8 WLAN 模块以及驱动程序。它还包含用于 WPA 请求的额外构建软件包和基于开源但针对 WL18xx 器件定制的 hostapd。实用程序还集成了用于测试的工具、用于演示 Wi-Fi 操作的示例脚本以及器件固件。脚本可用于构建整个模块和内核,或者能够构建各个模块。
构建实用程序脚本中所含的一般过程如下所示:
脚本将下载相关组件的以下源文件。如需了解各个组件确切版本的详细信息,请参阅 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 | 无线管制数据库 |
从 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]
“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 等)位于同一目录下。
以下步骤会下载构建所需的整个源代码。首次安装时,这可能需要更长的时间。后续更新时,时间会短一些。
user@ubuntu:~/wl8-build$ cd build-utilites
user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh init
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
WiLink8 驱动程序包中含有一系列补丁,需要应用这些补丁,才能启用完整的功能。这些补丁起到了功能增强和错误修复的作用。只有首次构建内核映像来启用 WiLink8 WLAN 时,才需要完成此步骤。
user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh patch_kernel
以下命令将会构建内核。若要包含特定于 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 进行开发时,需要执行以下步骤。
将 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
每个 WiLink8 驱动程序版本都带有特定的标签。对于 Wilink8 Driver R8.8 驱动程序,该标签为“R8.8”。若要检出 R8.8 版本、进行构建并安装到目标文件系统中,则需要使用以下命令(假定具有访问文件系统所需的根权限):
user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh update R8.8
在此阶段,WiLink8 驱动程序和内核的所有组件应该都已构建完毕。输出库、二进制文件、示例脚本、固件和 TI 实用程序等均位于 setup_env 文件中指定的文件夹内(默认为 ./build-utilities/fs)。这些均可直接安装。请注意,以下步骤假定默认的 SDK 映像已安装到 SD 卡中。使用以下示例命令将 fs 文件夹从 ./build-utilities 目录复制到目标位置。
sudo cp –p ./fs/* <rootfs path on SD card>/