一. 简介
前一篇文章做了WIFI联网前的工作,文章如下:
WIFI驱动移植实验:WIFI 联网前的工作-CSDN博客
本文在上面一篇文章工作实现的基础上,实现 WIFI的连接。
二. WIFI驱动移植实验:WIFI 联网测试
这里WIFI联网的前提是,在上一篇文章工作实现的基础上。也就是说,串口运行 "ifconfig" 命令,可以看到 wlan0无线网卡:
/ # ifconfig wlan0 up
==> rtl8188e_iol_efuse_patch
IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
/ # ifconfig
wlan0 Link encap:Ethernet HWaddr 00:13:EF:F8:28:DB UP BROADCAST MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
...........
1. 扫描WIFI热点
首先,测试一下 RTL8188 USB WIFI 联网测试,确保 RTL8188 能扫描出要连接的 WIFI 热点。使用 如下命令扫描 WIFI热点:
iwlist wlan0 scan
这里可以扫描到周围存在的很多 WIFI热点。
例如,我要连接 “TP-LINK_8860” 这个 WIFI(我本人的路由器),iwlist 扫描到的此 WIFI 热点信息如下:
2. 创建 WIFI配置文件
(1) 创建 wpa_supplicant.conf 的配置文件
要连接的 WIFI 热点扫描到以后就可以连接了。先在开发板根文件系统的 /etc 目录下创建一个名为 “wpa_supplicant.conf” 的配置文件,此文件用于配置要连接的 WIFI 热点以及 WIFI 密码。
例如,我要连接到 “TP-LINK_8860” 这个热点上,因此, wpa_supplicant.conf 文件内容如下所示:
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={ssid="TP-LINK_8860"psk="qin563128"
}
第 4 行, ssid 是要连接的 WIFI 热点名字,这里我要连接的是 “TP-LINK_8860” 这个 WIFI 热点。
第 5 行, psk 就是要连接的 WIFI 热点密码。
注意,wpa_supplicant.conf 文件对于格式要求比较严格,“=” 前后一定不能有空格,也不要用 TAB 键来缩进。
例如,第 4 行和 5 行的缩进应该采用空格,否则的话会出现 wpa_supplicant.conf 文件解析错误!最重要的一点!wpa_supplicant.conf 文件内容要自己手动输入,不要偷懒复制粘贴!!!
(2) 创建 /var/run/wpa_supplicant 目录
在 开 发 板 根 文 件 系 统 下 创 建 一 个 “/var/run/wpa_supplicant ” 目录, wpa_supplicant 工具要用到此目录!命令如下:
(3) 连接 WIFI热点
一切准备好以后,就可以使用 wpa_supplicant 工具让 RTL8188 USB WIFI 连接到热点上,输 入如下命令:
wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &
当 RTL8188 连接上 WIFI 热点以后,就会输出红色框中的 信息:
可以看出,当 RTL8188 连接到 WIFI 热点上以后会输出“wlan0: CTRL-EVENT-CONNECTED” 的信息。
接下来就是设置 WIFI设备的 ip地址,然后,通过 ping外网确定 WIFI功能是否可用。
因为这里设备IP地址是通过从路由器动态获取,动态获取IP地址时出现了问题,所以,下一篇文章来具体实现并解决。