Yocto linux下wifi驱动移植

时间:2024-03-18 11:09:32

linux下wifi移植,首先要保证硬件gpio相关配置正确,第二步是才是软件相关的配置

一、硬件篇

硬件模块选的是正基ap6745的三合一模块(wifi、bt、fm),wifi通讯用sdio模式传输数据,sdio_vsl决定sdio工作电压是1.8v还是3.3v,同时配置两个gpio,wl_reg控制wifi上电,wl_host_wake给cpu一个中断信号,即wifi以中断方式给cpu传递数据,如果没有配置也可以用poll轮询方式工作。还有xtal的时钟需要,这个时钟可以是cpu输出提供,也可以通过外部晶振自动产生。SDIO就是标准的sdio总线。

Yocto linux下wifi驱动移植

硬件分析完就需要在dts中配置了

sdio硬件采用sd1,所以需要配置sd1总线

Yocto linux下wifi驱动移植

Yocto linux下wifi驱动移植
 Yocto linux下wifi驱动移植

cd-gpio 管脚是sd的cd检测pin,如果没有配置会导致sd卡驱动加载失败。

Yocto linux下wifi驱动移植

在config文件中配置宏开关以及固件的路径,至于固件安置在yocto上跟其他平台不一致,后面会单独说明。

做完这些配置,并将bcmdhd驱动文件放置到/driver/net/wireless/目录,并配置好Makefile以及Kconfig文件,同时在驱动文件中药做一下gpio的适配工作,包括上电以及中断脚的配置。

如果编译没有报错,驱动正常加载,可以系统起来之后进入/sys/class/bus/mmc/节点下看是否有mmc0设备(mmc0是我们对应的sdio1驱动对应模块)。一切正常就可以验证wifi功能了。

第二步、wifi软件配置

执行ifup wlan0  //wlan0使我们对应的wifi设备名称

这时从串口的log中会看到wifi上电信息以及固件加载的信息:

Yocto linux下wifi驱动移植

 

如果信息中没有报错,可以在执行ifconfig 查看当前的设备信息:

Yocto linux下wifi驱动移植

这时看到wlan0没有ip地址分配,可以手动配置ifconfig wlan0 192.168.1.100,根据当前局域网环境配置一个ip地址即可,或是启动自动分配地址命令,需要将设备联网,用wpa的模式。

执行之前需要配置wpa_supplicant.conf 文件,文件一般路径在/etc/目录

Yocto linux下wifi驱动移植

可以连接成有秘钥或是无秘钥方式,秘钥模式也有几种秘钥明文模式。

Yocto linux下wifi驱动移植

#wpa_supplicant -Dnl80211 -i wlan0 -c /etc/wpa_supplicant.conf -d&

Yocto linux下wifi驱动移植

执行完上述命令就可以并看到相关信息之后,就可以执行ping通命令以及dhcp自动分配ip地址

dhcpc -i wlan0

Yocto linux下wifi驱动移植

执行自动分配ip之后查看ifconfig,可以看到当前以及分配到192.168.0.104地址,再执行ping 192.168.0.8或是ping www.baidu.com 看看网络通信是否正常。

Yocto linux下wifi驱动移植

wifi配置基本就是这些,其他的后期再补充。

参考链接:https://blog.csdn.net/sy373466062/article/details/50374683