Wi-Fi | 軟體:如何自訂 BDF 並製作高通 Wi-Fi 韌體映像檔

關鍵字 :wifi韌體bdfSquashFS高通

BDF(Board Data File)是高通 Wi-Fi 驅動程式中用來定義硬體參數的檔案,包含許多關鍵設定,例如 XTAL_CAL_SECTION、PER_PHY_SETTING、WIFI_RADAR_SECTION、TPC_CONFIG 等。在開發新硬體板時,這些參數通常需要根據需求進行調整。然而,當我們完成 BDF 的修改後,該如何將新的 BDF 整合到設備中呢?以下將詳細說明整個流程。

BDF 與 Wi-Fi 固件的存放位置

在設備的儲存記憶體中,通常會有一個專門的分區用來存放 Wi-Fi 韌體與 BDF。例如,在 IPQ6000 系列的設備中,Wi-Fi 韌體與 BDF 通常位於 `/dev/mtdblock21`,並掛載於 `/lib/firmware/IPQ6018/WIFI_FW`。該分區採用的是 SquashFS 格式,屬於唯讀檔案系統。

製作客製化 IPQ50xx Wi-Fi 固件映像的步驟

1.安裝必要工具

在開始之前,請確保已安裝以下工具:

mtd-utils:可以透過以下指令安裝:

bash

sudo apt-get install mtd-utils

 

mksquashfs4:用於製作 SquashFS 檔案。

 

2. 解壓縮原始韌體檔案

首先,建立一個臨時目錄來存放解壓縮的檔案:

bash

mkdir -p /fwtemp

 

接著,將原始韌體檔案複製到該目錄並解壓縮:

bash

cp -rfv /wlan_proc/pkg/wlan_proc/bin/QCA5018_v1.0/qca-wifi-fw-QCA5018_v1.0-WLAN.HK.2.8.r1-xxxx-QCAHKSWPL_SILICONZ-X.tar.bz2 /fwtemp

cd /fwtemp

tar -xvf qca-wifi-fw-QCA5018_v1.0-WLAN.HK.2.8.r1-xxxx-QCAHKSWPL_SILICONZ-X.tar.bz2

 

3. 建立臨時目錄並放入自訂 BDF

在解壓縮後的檔案中,建立一個名為 `staging_dir` 的目錄,並將 Wi-Fi 固件與 BDF 檔案放入其中:

bash

句子: mkdir staging_dir

cp -rfv qca-wifi-fw-WLAN.HK.2.8.r1-xxxx-QCAHKSWPL_SILICONZ-X/PIL_IMAGES/* staging_dir

cp -rfv qca-wifi-fw-WLAN.HK.2.8.r1-xxxx-QCAHKSWPL_SILICONZ-X/bdwlan* staging_dir

 

此時,您可以將自訂的 BDF 檔案放入 `staging_dir` 目錄中。

 

4. 製作 SquashFS 檔案

使用以下指令將 `staging_dir` 目錄中的內容壓縮為 SquashFS 檔案:

bash

mksquashfs4 staging_dir/ wifi_fw.squashfs -nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2 -Xbcj arm -b 256k -processors 1

dd if=wifi_fw.squashfs of=wifi_fw_squashfs.img bs=2k conv=sync

 

5. 製作單一映像檔案

將製作完成的 SquashFS 檔案整合到最終的韌體映像檔中:

bash

cp /fwtemp/wifi_fw_squashfs.img /wlan_proc/build/ms/bin/FW_IMAGES/

cp /fwtemp/wifi_fw_ubi.img /wlan_proc/build/ms/bin/FW_IMAGES/

export BLD_ENV_BUILD_ID=<profile>

python update_common_info.py

 

6. 使用單一映像檔案進行更新

製作好單一映像檔案之後,就可以透過以下指令進行更新

bash

設定環境變數 loadaddr 為 0x44000000

通過 TFTP 啟動 nand-ipq6018-single.img,並將 imgaddr 設定為 $fileaddr,然後執行 $imgaddr:script

 

單獨更新 Wi-Fi 韌體與 BDF

如果僅需更新 Wi-Fi 固件或 BDF,無需重新製作整個映像檔案,可以透過以下方式進行:

1. 使用 TFTP 上傳映像檔案

將映像檔案(例如 `wifi_fw_ubi.img` 或 `wifi_fw_squashfs.img`)上傳到設備:

bash

tftpboot wifi_fw_ipq5018_qcn9000_squashfs.img

 

2. 使用 Flash 指令更新分區

根據設備的分區名稱,執行以下指令進行更新:

bash

刷寫 Wi-Fi 韌體

 

其中,`wifi_fw` 是 Wi-Fi UBI 分區的名稱。

 

注意事項

如果設備使用的是 NOR 或 eMMC 啟動模式,請確認分區名稱是否正確。例如:

bash

快閃記憶體 0:WIFIFW

 

其中,`0:WIFIFW` 是 Wi-Fi 分區的名稱。

 

透過以上步驟,您可以成功製作並更新客製化的高通 Wi-Fi 韌體與 BDF,確保設備的最佳效能與穩定性。

 

常見問題與解答

Q1:為什麼需要客製化 BDF?

A1:BDF 定義了硬體的參數設定,客製化 BDF 可以根據不同的硬體設計需求進行調整,確保 Wi-Fi 的最佳效能。

Q2:SquashFS 是什麼?

A2: SquashFS 是一種唯讀的壓縮檔案系統,適合用於嵌入式設備,能夠有效減少儲存空間的使用。

Q3:如果更新失敗該怎麼辦?

A3:請檢查映像檔的完整性,並確認分割區名稱是否正確。如有需要,可以重新製作映像檔並再次嘗試。

Q4:是否可以同時更新多個分區? 

A4:可以,但建議逐一更新並驗證,以降低風險。

Q5: 如何驗證更新是否成功? 

A5:更新完成後,重新啟動設備並檢查 Wi-Fi 的功能是否正常運作,或使用相關工具查看 BDF 的參數是否正確載入。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論