ZHCU913A September 2020 – October 2020 WL1801MOD , WL1805MOD , WL1807MOD , WL1831 , WL1831MOD , WL1835MOD , WL1837MOD
以下部分詳細(xì)介紹了使用構(gòu)建實(shí)用程序構(gòu)建 R8.8 版本的步驟。構(gòu)建實(shí)用程序提供了統(tǒng)一的方法來(lái)構(gòu)建、更新和集成 WL18xx WLAN 驅(qū)動(dòng)程序和模塊。此步驟需要在針對(duì)目標(biāo)平臺(tái)配置內(nèi)核并對(duì) DTS/B 文件進(jìn)行必要更改后完成。WiLink8 R8.8 版本基于 Linux 內(nèi)核版本 4.19,并且不支持之前內(nèi)核版本的反向端口。
構(gòu)建實(shí)用程序集成了操作 WL18xx 器件所需的 WiLink8 WLAN 模塊以及驅(qū)動(dòng)程序。它還包含用于 WPA 請(qǐng)求的額外構(gòu)建軟件包和基于開(kāi)源但針對(duì) WL18xx 器件定制的 hostapd。實(shí)用程序還集成了用于測(cè)試的工具、用于演示 Wi-Fi 操作的示例腳本以及器件固件。腳本可用于構(gòu)建整個(gè)模塊和內(nèi)核,或者能夠構(gòu)建各個(gè)模塊。
構(gòu)建實(shí)用程序腳本中所含的一般過(guò)程如下所示:
腳本將下載相關(guān)組件的以下源文件。如需了解各個(gè)組件確切版本的詳細(xì)信息,請(qǐng)參閱 WiLink8 R8.8 版本說(shuō)明。下載的源文件保存在 ./build-utilities/src 目錄中。
| 目錄 | 內(nèi)容 |
|---|---|
| fw_download | 包含版本隨附的 WiLink8 器件固件 |
| hostap | wpa_supplicant 和 hostapd 的源代碼。它們依賴(lài)于 opnessl 和 libnl,后兩者也會(huì)下載到 ./build-utilities/src 下 |
| iw | iw 工具的源代碼。 |
| openssl | 包含克隆的 openssl 源代碼 |
| scripts_download | 用于運(yùn)行 WL18xx 的各種腳本 |
| ti_utils | TI 提供的各種實(shí)用程序。 |
| wireless-regdb | 無(wú)線(xiàn)管制數(shù)據(jù)庫(kù) |
從 git://git.ti.com/wilink8-wlan/build-utilites.git 克隆構(gòu)建實(shí)用程序,示例如下:
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
克隆完成后,構(gòu)建實(shí)用程序的以下腳本會(huì)出現(xiàn)在 ./build-utilities 文件夾中。下面提供了相關(guān)腳本的詳細(xì)信息:
| setup-env.sample | 示例環(huán)境設(shè)置文件。應(yīng)復(fù)制并重命名為 setup-env |
| configuration.sh | 包含用于下載源文件的 Git 存儲(chǔ)庫(kù)地址和 Git 標(biāo)簽的配置詳細(xì)信息。 |
| build_wl18xx.sh | 這是主腳本,該腳本會(huì)使用 setup-env 和 configuration.sh 以及各個(gè)用戶(hù)參數(shù)來(lái)下載、清理、更新或構(gòu)建用戶(hù)選擇的特定組件。 |
| sudo_build_wl18xx.sh | 與使用 sudo 選項(xiàng)的 build_wl18xx.sh 相同。請(qǐng)注意,如果將該腳本的“sudo”版本用于“init”選項(xiàng),相關(guān)目錄會(huì)變?yōu)闅w root 所用。 |
| verify_kernel_config.sh | 用于驗(yàn)證內(nèi)核配置的腳本。 |
以下各節(jié)將使用 build-wl18xx.sh 腳本來(lái)清理、構(gòu)建和安裝所有組件或特定組件。構(gòu)建特定組件的情況將在稍后部分進(jìn)行討論。使用 –h 參數(shù)則可以顯示可用的命令選項(xiàng)。
./build_wl18xx.sh -h 下面顯示了可用的選項(xiàng)。
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”的基礎(chǔ),后者包含特定于用戶(hù)的環(huán)境變量。用戶(hù)應(yīng)將 setup-env.sample 復(fù)制到 setup-env 并根據(jù)特定于用戶(hù)的環(huán)境編輯相關(guān)變量。用戶(hù)應(yīng)編輯 setup-env 文件,以指向內(nèi)核和工具鏈所在的正確目錄。下面是一個(gè)示例文件:
# \\\//
# -(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 文件應(yīng)與構(gòu)建腳本(build_wl18xx.sh 等)位于同一目錄下。
以下步驟會(huì)下載構(gòu)建所需的整個(gè)源代碼。首次安裝時(shí),這可能需要更長(zhǎng)的時(shí)間。后續(xù)更新時(shí),時(shí)間會(huì)短一些。
user@ubuntu:~/wl8-build$ cd build-utilites
user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh init
WiLink8 WLAN 功能要求在內(nèi)核配置中啟用一些設(shè)置。這可以使用構(gòu)建實(shí)用程序軟件包中提供的 verify_kernel_config.sh 實(shí)用程序來(lái)設(shè)置/驗(yàn)證,如下所示:
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 驅(qū)動(dòng)程序包中含有一系列補(bǔ)丁,需要應(yīng)用這些補(bǔ)丁,才能啟用完整的功能。這些補(bǔ)丁起到了功能增強(qiáng)和錯(cuò)誤修復(fù)的作用。只有首次構(gòu)建內(nèi)核映像來(lái)啟用 WiLink8 WLAN 時(shí),才需要完成此步驟。
user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh patch_kernel以下命令將會(huì)構(gòu)建內(nèi)核。若要包含特定于 TI WiLink8 的補(bǔ)丁,需要重建內(nèi)核。用戶(hù)可以直接從 SDK 構(gòu)建內(nèi)核,也可以使用構(gòu)建腳本來(lái)構(gòu)建內(nèi)核。內(nèi)核 defconfig 文件名作為參數(shù)傳遞。
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 進(jìn)行開(kāi)發(fā)時(shí),需要執(zhí)行以下步驟。
將 BeagleBone Black 與 Element-14 無(wú)線(xiàn) Cape 搭配使用時(shí)需要用到的 DTS/B 文件也可以使用 build_utilities 來(lái)生成。應(yīng)用 BeagleBone Black dts 文件來(lái)使用以下命令并通過(guò) WL1837MOD 添加對(duì) Element-14 無(wú)線(xiàn) Cape 的支持
user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh patch_bbbe14_dts構(gòu)建具有 Element 14 無(wú)線(xiàn) Cape 的 Beaglebone Black dts 來(lái)生成所需的 dtb 文件。
user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh bbbe14_dtb每個(gè) WiLink8 驅(qū)動(dòng)程序版本都帶有特定的標(biāo)簽。對(duì)于 Wilink8 Driver R8.8 驅(qū)動(dòng)程序,該標(biāo)簽為“R8.8”。若要檢出 R8.8 版本、進(jìn)行構(gòu)建并安裝到目標(biāo)文件系統(tǒng)中,則需要使用以下命令(假定具有訪(fǎng)問(wèn)文件系統(tǒng)所需的根權(quán)限):
user@ubuntu:~/wl8-build/build-utilites$ ./build_wl18xx.sh update R8.8在此階段,WiLink8 驅(qū)動(dòng)程序和內(nèi)核的所有組件應(yīng)該都已構(gòu)建完畢。輸出庫(kù)、二進(jìn)制文件、示例腳本、固件和 TI 實(shí)用程序等均位于 setup_env 文件中指定的文件夾內(nèi)(默認(rèn)為 ./build-utilities/fs)。這些均可直接安裝。請(qǐng)注意,以下步驟假定默認(rèn)的 SDK 映像已安裝到 SD 卡中。使用以下示例命令將 fs 文件夾從 ./build-utilities 目錄復(fù)制到目標(biāo)位置。
sudo cp –p ./fs/* <rootfs path on SD card>/