提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、USB接口的wifi芯片
- 二、使用步骤
- wireless tools 移植
- wireless tools 工具测试
- wpa_supplicant 移植
- openssl 移植
- libnl 库移植
- WIFI 联网测试
- 总结
前言
在日常开发中我们经常需要用到wifi功能,一般来说soc厂家都会事先做好了几个厂家的wifi驱动在内核源码目录下,我们只需要按原理图配置对应的设备树即可。常用的wifi的接口有:
USB
SDIO
PCIE
下面来介绍这这种接口是如何使用wifi芯片。
提示:以下是本篇文章正文内容,下面案例可供参考
一、USB接口的wifi芯片
USB WIFI 使用使用的芯片为 RTL8723du,SDIO 接口的 WIFI 使用芯片为 RTL8189FS,也叫做RTL8189FTV.
WIFI 驱动不需要我们编写,因为realtek 公司提供了 WIFI 驱动源码,因此我们只需要将 WIFI 驱动源码添加到 Linux 内核中,然 后通过图形化界面配置,选择将其编译成模块即可
在上一级修改Kconfig(添加rtl8723du的Kconfig文件路径)
修改Makefile文件(添加rtl8723du的makefile文件路径):
修改rtl8723du目录下的Kconfig文件
修改Makefile文件
之后配置使能即可:
二、使用步骤
WIFI 要想联网,需要移植一些其他第三方组件,否则无法连接路由器,接下来我们就移植这些第三方组件
wireless tools 移植
wireless tools 是操作 WIFI 的工具集合,包括一下工具:
①、iwconfig:设置无线网络相关参数。
②、iwlist:扫描当前无线网络信息,获取 WIFI 热点。
③、iwspy:获取每个节点链接的质量。
④、iwpriv:操作 WirelessExtensions 特定驱动。
⑤、ifrename:基于各种静态标准命名接口。
这个比较简单,只需要下载到源码,修改下编译器即可
编译完成以后就会在当前目录下生成 iwlist
、iwconfig
、iwspy
、iwpriv
、ifrename
这 5 个工
具,另外还有很重要的 libiw.so.29
这个库文件。将这 5 个工具拷贝到开发板根文件系统下的
/usr/bin
目录中,将 libiw.so.29
这个库文件拷贝到开发板根文件系统下的/usr/lib
目录中,命令如
下:
sudo cp iwlist iwconfig iwspy iwpriv ifrename /home/zuozhongkai/linux/nfs/rootfs/usr/bin/ -f
sudo cp libiw.so.29 /home/zuozhongkai/linux/nfs/rootfs/usr/lib/ -f
拷贝完成以后可以测试 iwlist 是否工作正常
wireless tools 工具测试
wlan0 网卡打开以后就可以使用 iwlist 命令查找当前环境下的 WIFI 热点信息,也就是无线
路由器,输入如下命令:
iwlist wlan0 scan
上述命令就会搜索当前环境下的所有 WIFI 热点,然后将这些热点的信息信息答应出来,
包括 MAC 地址、ESSID(WIFI 名字)、频率、速率,信号质量等等
要想连接到指定的 WIFI
热点上就需要用到 wpa_supplicant 工具,所以接下来就是移植此工具
wpa_supplicant 移植
openssl 移植
wpa_supplicant 依赖于 openssl,因此需要先移植 openssl
libnl 库移植
把上面这些库移植好之后就可以移植wpa_supplicant 移植
WIFI 联网测试
先在开发板根文件系统的/etc 目录下创建一个名为“wpa_supplicant.conf”的配置文件
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1
network={
ssid="账号"
psk="密码"
key_mgmt=WPA-PSK
}
再 在 开 发 板 根 文 件 系 统 下 创 建 一 个“/var/run/wpa_supplicant”目录
输入如下命令:
wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &
udhcpc -i wlan0 //从路由器获取 IP 地址
IP 地址获取成功以后会输出如图 70.4.2.2 所示信息:
使用 wlan0 来 ping 一下百度网站,输入如下命令:
ping -I 192.168.1.126 www.baidu.com
总结
本小节介绍了一个配置一个USBwifi驱动的整个流程,并没有介绍到SDIO,下小节基于AP6256介绍如何使用。