WS73V100 Linux 平台WiFi驱动移植

WS73V100 Linux 平台WiFi驱动移植 MOmo 2024-03-16 10:01:37 310

1. 内核参数配置

1.1配置 CFG80211

CFG80211 也是内核中 Wi-Fi 驱动和用户态进程的标准接口。
步骤 1 进入内核源码目录,执行 make menuconfig 命令,进入 Networking support →Wireless,设置 cfg80211 和 mac80211。

配置 CFG80211

如果内核中的 CFG80211 设置为’M’,cfg80211 会编译成 cfg80211.ko 文件;如果 CFG80211 设置为’*’,cfg80211 会被集成到内核中。

1.2配置 SDIO

当使用 SDIO 模组设备时,需要开启 MMC/SD/SDIO card support.
步骤 1 进入内核源码目录,执行 make menuconfig 命令,进入 Device Drivers →MMC/SD/SDIO card support,按图 3-2 进行配置。

配置 SDIO

1.3配置 USB

当使用 USB 模组设备时,需要开启 USB Support。
步骤 1 进入内核源码目录,执行 make menuconfig 命令,进入 Device Drivers → USB support,设置“xHCI HCD (USB 2.0) support”为“*”。
配置 USB

由于 wpa_supplicant、hostapd 应用采用 Netlink 技术与 Linux 内核通信,需要配置Netlink。

步骤 1 进入内核源码目录,执行 make menuconfig 命令。选择 Networking support →Networking options,设置“Network packet filtering framework (Netfilter)”为“y”(选择为“*”)。

步骤 2 进入 Network packet filtering framework (Netfilter),设置“Advanced netfilter Configuration”为“y”(选择为“*”)。
配置 Netlink

1.4配置 NAT 转发(可选)

如果需要使用 SoftAP 网络共享功能,需要配置 NAT 转发功能。
步骤 1 进入内核源码目录,执行 make menuconfig 命令。选择 Networking support →Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration,设置“Netfilter connection tracking support”为“y”(选择为“*”)。
步骤 2 再进入 Networking support → Networking options → Network packet filtering framework (Netfilter) ,根据使用需求配置 NAT 转发功能。

配置 NAT 转发

2.单板配置文件配置

3.驱动加载步骤

步骤 1 默认加载 cfg80211.ko
步骤 2 确认采用的驱动加载模式,若通过配置启动脚本来加载驱动,可直接跳到步骤 4;若通过适配驱动模组设备号,再加载驱动,可继续执行步骤 3。
步骤 3 针对 USB 模组,可执行“lsusb”查看模组的 VID 和 PID 号,其中 WS73 模组默认值为 ffff:3733。

针对 SDIO 模组,可查看内核实际注册的设备节点来获取模组的 VID 和 PID 号,其中WS73 模组默认值为 ffff:3733。

步骤 4 先加载 plat_soc.ko,再根据需要加载 wifi_soc.ko、sle_soc.ko、ble_soc.ko(wifi、sle、ble 间无依赖关系,只要在 plat ko 后加载即可)

4.Linux 平台 WiFi 移植

4.1驱动移植步骤

步骤 1 解压驱动源码包。
将驱动源码包 WS73V100R001C00SPCXXX.tar.gz 放置于服务器上,并进行解压,参考 2.2 编译 SDK 配置编译工具链、内核路径、CPU 架构等,命令如下:

$ tar -xzf WS73V100R001C00SPCXXX.tar.gz 
$ cd WS73V100R001C00SPCXXX

步骤 2 完成配置后,执行 make all 命令编译驱动文件,在 output 生成目标文件:

$ make all

编译结果输出到”output”目录下,如表所示。
全量编译结果

编译工具链接需要提前配置环境变量,例如 export PATH=$PATH:/home/wifi/share/armlinux-gnueabihf/bin,路径根据实际情况配置。
使用不同工具链时,可能会导致编译过程中出现告警导致编译失败,可在相关驱动组件的Makefile 文件中修改编译选项。

4.2工具移植步骤

步骤 1 用户选择所需的第三方组件进行下载,相关组件下载链接如下:

步骤 2 将下载压缩包放置 SDK 相应目录,并执行下列命令:

  • 解压 libnl-3.5.0 至 SDK 的 open_source/libnl 目录下。
  • 解压 openssl-1.1.1 至 SDK 的 open_source/openssl 目录下。
  • 解压 wpa_supplicant-2.10 至 SDK 的 open_source/wpa_supplicant 目录下。
  • 解压 hostapd-2.10 至 SDK 的 open_source/hostapd 目录下。
$ mkdir -p open_source/libnl && tar -xzf libnl-3.5.0.tar.gz -C open_source/libnl/ --strip-component=1 
$ mkdir -p open_source/openssl && tar -xzf openssl-1.1.1n.tar.gz -C open_source/openssl/ --stripcomponent=1 
$ mkdir -p open_source/wpa_supplicant && tar -xzf wpa_supplicant-2.10.tar.gz -C 
open_source/wpa_supplicant/ --strip-component=1 
$ mkdir -p open_source/hostapd && tar -xzf hostapd-2.10.tar.gz -C open_source/hostapd/ --stripcomponent=1

步骤 3 给 wpa_supplicant 组件补丁,相关命令如下:

$ cd open_source/wpa_supplicant(以用户实际路径为准) 
$ patch -p1 < wpa_supplicant_2_10_linux.patch

步骤 4 完成对相关组件的补丁后,在 SDK 根目录下执行“make tools”命令,在 output 目录下生成目标文件如下:
wifi_service/libnl-3.so.200.26.0
wifi_service/libnl-genl-3.so.200.26.0
wifi_service/libnl-route-3.so.200
wifi_service/libcrypto.so.1.1
wifi_service/libssl.so.1.1
wifi_service/wpa_supplicant
wifi_service/wpa_cli
wifi_service/hostapd

提供的 wpa_supplicant.patch 是基于 wpa_supplicant 2.10 生成的补丁文件,若用户使用其他版本的开源组件,可能会产生兼容性问题。

4.3WiFi 业务调试

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
MOmo
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
MOmo
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区