android wifi 调试基本操作方法(USB设备STA模式)

基于海思3798MV200平台,参考了官方文档

一、检查WiFi设备

执行 shell 命令。lsusb  或 busybox lsusb,打印输出所有usb设备ID,例如:

Bus 001 Device 004: ID 0bda:8179

 android wifi 调试基本操作方法(USB设备STA模式)_第1张图片

0bda:8179 即RTL8188EUS 的USB 设备ID,看到了ID 说明设备已经识别到。
如果不支持lsusb 和busybox lsusb 命令,那么可以采用以下方法检查:进入
/sys/bus/usb/devices 目录,可以看到有多个子目录,每个子目录下都保存着一个USB
设备的信息,其中有一个uevent 文件,里面保存着设备类型、设备ID 等信息。依次查
看每个子目录下的uevent 文件中的PRODUCT=xx/xx/xx,看是否有采用的WiFi 的设备
ID,如果找到,那说明已经识别到WiFi 设备,如果没有则WiFi 未插入、未上电或者
已经损坏。

android wifi 调试基本操作方法(USB设备STA模式)_第2张图片

二、加载驱动

步骤 1 加载CFG80211 驱动。
如果驱动使用了cfg80211,cfg80211 是编译成ko 文件,需要先加载cfg80211.ko。
进入ko 存放目录,执行shell 命令:
insmod cfg80211.ko


步骤 2 加载WiFi 驱动。
进入ko 存放目录,执行shell 命令:
insmod rtl8188eu.ko
一般来说,WiFi 芯片不同,驱动也不同,也有不同的WiFi 芯片采用了相同的驱动,如
RTL8188ETV 和RTL8188EUS 的驱动是相同的,RTL8188CUS 和RTL8192CU 的驱动
是相同的。


步骤 3 查看驱动是否加载成功
执行shell 命令:
iwconfig
如果看到有一个wlan0 网口,那说明驱动已经初始化成功,WiFi 设备可用。 

android wifi 调试基本操作方法(USB设备STA模式)_第3张图片

步骤 4 启动WiFi 网口。
执行shell 命令:
ifconfig wlan0 up
执行完后,WiFi 是可用状态,可以进行扫描和连接操作了。

三、扫描AP

 执行shell 命令:
iwlist wlan0 scan

android wifi 调试基本操作方法(USB设备STA模式)_第4张图片

 扫描到的AP 会以“Cell xx”的形式显示,一个AP 对应一个“Cell xx”。

 每个AP 的信息包括:
Address:MAC 地址。
ESSID:AP 的名称,即SSID。
Protocol:IEEE80211 协议,11b/g/n。
Frequency:信道。
认证加密信息:WEP、WPA-PSK、WPA2-PSK、WPA、WPA2。
Quality:信号质量,该数据有些WiFi 显示得不准确,可以忽略。
Singal Level:信号强度,数字越大,信号强度越高,WiFi 芯片不同,显示的方式
有些区别,有的是以xx/100 类型显示,有的是以xx dBm 显示。
上述信息并不是所有WiFi 都是以这种格式显示,WiFi 不同显示的格式也不一样。

四、连接AP

连接AP 是通过wpa_supplicant 进程进行的。wpa_supplicant 是开源代码,Linux、
Android 都是采用它负责WiFi 的连接过程,它包含了WEP、WPA/WPA2、WPASPK/
WPA2-PSK、WAPI、WPS、P2P、EAP 等协议。


步骤 1 启动wpa_supplicant 进程。
执行shell 命令:
wpa_supplicant –iwlan0 –Dnl80211 –c/etc/Wireless/wpa_supplicant.conf&
-iwlan0 表示使用wlan0 网口;
-Dnl80211 表示使用cfg80211 接口(用户态的接口是libnl,内核中是cfg80211),
另外一个可选的是-iwext,表示使用wext 接口;
-c/xxx/wpa_supplicant.conf 是wpa_supplicant 的配置文件,要保证该文件已经存
在。
执行完后,用ps 命令查看一下wpa_supplicant 进程是否存在,存在表示工作正常。如
果没有wpa_supplicant 进程,可以增加wpa_supplicant 的打印级别,从log 看出现什么
问题,如:
wpa_supplicant –iwlan0 –Dnl80211 –c/etc/Wireless/wpa_supplicant.conf –ddd
&

步骤 2 启动wpa_cli 进程。
执行shell 命令:
wpa_cli –iwlan0

执行成功会出现“>”符号。
如果出现“Could not connect to wpa_supplicant - re-trying”,那表示wpa_cli 不能和
wpa_supplicant 建立socket 连接,这时要检查wpa_supplicant 进程是否还在,再看是否
有/var/run/wpa_supplicant/wlan0,然后检查wpa_supplicant.conf 文件中是否是
ctrl_interface=/var/run/wpa_supplicant。

步骤 3 扫描。
在“>”后执行“scan”命令,收到“CTRL-EVENT-SCAN-RESULTS”后再执行
“scan_results”,会获得扫描结果。

android wifi 调试基本操作方法(USB设备STA模式)_第5张图片

 

步骤 4 连接。
1. 以连接 OPEN 方式的AP 为例,在“>”后执行“add_network”,假如返回网络
ID 为0。
2. 配置网络的 SSID,执行set_network 0 ssid AP 的SSID。
3. 配置网络的加密方式,执行“set_network 0 key_mgmt NONE”。
4. 启动网络,执行“enable_network 0”。
5. 收到“CTRL-EVENT-CONNECTED”表示连接成功。

android wifi 调试基本操作方法(USB设备STA模式)_第6张图片

 

步骤 5 获取IP 地址。
输入q 退出wpa_cli,执行shell 命令:udhcpc –i wlan0

获取了IP 地址后,可以ping 网关看是否能ping 通。

你可能感兴趣的:(android,wifi)