Linux开发板使用wifi过程

1.buildroot WIFI 工具配置

首先要给文件系统添加一些操作 WIFI 的工具。进入 buildroot 源码目录里,接着运行“make menuconfig”进入图形配置界面,配置如下:

→ Target packages 
	→ Networking applications
		→ [*] wireless tools //选中
			→[*] Install shared library //选中
		→ [*] wpa_supplicant //选中
			→ [*] Enable nl80211 support //选中
			→[*] Enable AP mode //选中
				→ [*] Enable Wi-Fi Display //选中
				→ [*] Enable mesh networking //选中
			→ [*] Enable autoscan //选中
			→ [*] Enable EAP //选中
			→ [*] Enable HS20 //选中
			→ [*] Enable syslog support //选中
			→ [*] Enable WPS //选中
			→ [*] Enable WPA3 support //选中
			→ [*] Install wpa_cli binary //选中
			→ [*] Install wpa_client shared library //选中
			→ [*] Install wpa_passphrase binary //选中
			→ [*] Enable support for the DBus control interface //选中
			→ [*] Introspection support //选中

配置完成如图所示:

在这里插入图片描述

配置完成后重新编译文件系统,编译完成后,烧录并重启开发板。

2. WIFI 工具测试

我们先看下 iwlist 命令的使用的方法,命令如下:
iwlist --help
在这里插入图片描述

iwlist 命令测试 WIFI 之前得先让 WIFI 模块工作起来。运行以下命令打开 WIFI 网卡:

ifconfig wlan0 up

SDIO WIFI 已经启动了,现在可以使用 iwlist 去扫描网络(一定要接天线!!),输入如下命令扫描当前存在的无线网络:

iwlist wlan0 scanning

上述命令就会搜索当前环境下的所有 WIFI 热点,然后将这些热点的信息全部打印出来,包括 MAC 地址、ESSID(WIFI 名字)、频率、速率,信号质量等等,如图所示:
在这里插入图片描述

可以看出有两个 WIFI 热点,一个名为“ZZK”,一个名为“stone”,接下来我们使用 wpa_supplicant 这个工具来连接 WIFI 热点。简单介绍一下 wpa_supplicant命令的使用,这个命令的参数有很多,下面就列出常用的参数:
-D:指定设备,有三个设备分别为:nl80211、wext 和 wired。设备是固定的根据驱动源码
决定使用那个设备。
-c:指定 wpa_supplicant 配置文件。
-i:指定网口,比如我们的 WiFi 网口名为 wlan0。
-B:表示在后台运行。

3 RTL8723 SDIO WIFI 联网测试

默认情况下,开发板根文件系统/etc 目录下会有一个名为“wpa_supplicant.conf”的配置文件,没有的话就自行创建一下。此文件用于配置要连接的 WIFI 热点以及对应的密码,比如我要连接到“ZZK”这个热点上,因此wpa_supplicant.conf 文件内容如下所示:

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
    
    
 ssid="ZZK"
 psk="xxxxxxxxxxxxx"
}
第 6 行,ssid 是要连接的 WIFI 热点名字,这里我要连接的是“ZZK”这个 WIFI 热点。
第 7 行,psk 就是要连接的 WIFI 热点密码,根据自己的实际情况填写即可。
注意,wpa_supplicant.conf 文件对于格式要求比较严格,“=”前后一定不能有空格,缩进应该采用空格,否则的话会出现 wpa_supplicant.conf 文件解析错误!最重要的一点!

wpa_supplicant.conf 文 件 编 写 好 以 后 再 在 开 发 板 根 文 件 系 统 下 创 建一 个“/var/run/wpa_supplicant”目录,wpa_supplicant 工具要用到此目录!命令如下:

mkdir /var/run/wpa_supplicant -p

一切准备好以后就可以使用 wpa_supplicant 工具让 RTL8723 SDIO WIFI 连接到热点上,输入如下命令:

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

当 RTL8723 连接上 WIFI 热点以后会输出如图所示的信息:
在这里插入图片描述

可以看出,当 RTL8723 连接到 WIFI 热点上以后会输出“wlan0: CTRLEVENT-CONNECTED”字样。接下来就是最后一步了,设置 wlan0 的 IP 地址,这里使用udhcpc 命令从路由器申请 IP 地址,输入如下命令:

udhcpc -i wlan0 //从路由器获取 IP 地址

IP 地址获取成功以后会输出如图所示信息:
在这里插入图片描述

可以通过电脑 ping 一下 wlan0 的 192.168.1.196 这个 IP 地址,如果能 ping 通就说明 RTL8723SDIO WIFI 工作正常。也可以直接在开发板上使用 wlan0 来 ping 一下百度网站,输入如下命令:

ping -I 192.168.1.196 www.baidu.com

-I 是指定执行 ping 操作的网卡 IP 地址,我们要使用 wlan0 去 ping 百度网站,因此要通过“-I”指定 wlan0 的 IP 地址。如果 WIFI 工作正常的话就可以 ping 通百度网站