Wi-Fi | 软件:如何定制 BDF 并制作高通 Wi-Fi 固件映像文件

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

刷写 wifi 固件

其中,`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 的参数是否正确加载。

欢迎前往大大通官网查看更多精彩技术内容!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值