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:$PATHsetup-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>/