这篇文章如果对你(您)有帮助,是我的荣幸。
内核配置需要查看WS73V100Linux平台驱动移植pdf文件
编译驱动的流程
首先来配置python环境
安装python3.8:
sudo apt install python3.8 python3.8-venv python3.8-dev -y
然后确认安装python3.8 --version
在你解压WiFi固件库的文件夹中创建虚拟环境:
python3.8 -m venv ws_env
并激活环境:
source ws_env/bin/activate
验证:
python --version
然后安装SDK编译依赖:
pip install --upgrade pip
pip install pycparser>=2.21
编译wifi固件库需要CMake 版本至少 3.16,先下载官方安装包:
cd ~
mkdir -p cmake && cd cmake
wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-x86_64.tar.gz
然后解压:
tar -xzf cmake-3.26.4-linux-x86_64.tar.gz
然后将cmake添加到当前环境:
export PATH=HOME/cmake/cmake-3.26.4-linux-x86_64/bin:PATH
然后设置:交叉编译器 和 内核文件夹位置
WSCFG_CROSS_COMPILE="/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/arm-buildroot-linux-gnueabihf-"
WSCFG_KERNEL_DIR="/home/book/100ask_imx6ull-sdk/Linux-4.9.88"
驱动编译成功之后装载到开发板上的流程
先查看一下设备是否被识别 出现如下信息就表示 wifi模块被识别


需要将驱动运行过程中的固件库提前传入到开发板中


前四个固件库在firmware文件夹 ws73_cfg.ini文件需要将驱动编译出来才有 其中e文件夹里面是精简版 us文件夹里面是完整版
然后加载plat_soc.ko驱动 和 wifi_soc.ko驱动 按照顺序加载
在加载plat_soc.ko驱动时可能会遇到这个错误


我们需要在ws73_default.config文件中注释掉CONFIG_SDIO_RESCAN=y即可


驱动加载完成之后会出现 通过ifconfig指令看到对应的网络接口


驱动成功装载之后连接WiFi流程
- 找到所有运行中的 wpa_supplicant 进程并把它们全部结束,为接下来的wifi连接清理环境:
killall wpa_supplicant
- 删除掉wlan119接口控制文件,清理旧残留文件:
rm -f /var/run/wpa_supplicant/wlan119
- 激活无线网卡wlan119:
ifconfig wlan119 up
- 使用 nl80211 驱动,让无线网卡 wlan119 根据 /etc/wpa_supplicant.conf 配置文件连接Wi-Fi,指令如下:(用wext驱动连接不了 必须用nl80211):
wpa_supplicant -i wlan119 -D nl80211 -c /etc/wpa_supplicant.conf -B -d
- 该指令可以查看WiFi模块是否连接了WiFi:
iwconfig wlan119
ESSID有名字就表示连接wifi成功


- 申请ip
udhcpc -i wlan119
Inet addr有地址之后就表示申请ip成功


以上过程可以参考WS73V100 Linux wi-fi ble 软件开发指南 pdf(如果需要相关的pdf可以私信找我要)