Android系统中对于WIFI的设置集成到了“设置”中,其实跟手动设置差不多。这里介绍下如何手动连接WIFI,以方便以后调试WIFI。
第一步要做的就是要加载WIFI模块驱动了。当然如果你的WIFI是编译到内核里面的,就不需要的。我们的WIFI芯片用的是BCM4330,编译为模块。
insmod/system/lib/modules/kernel/drivers/net/wireless/bcm4330/bcm4330.kofirmware_path=/system/vendor/firmware/bcm4330.bin\nvram_path=/system/vendor/firmware/nvram.txt
这样驱动模块加载后,需要启动wpa_supplicant
root@android:/#wpa_supplicant-Dwext-iwlan0-C/data/system/wpa_supplicant-c/data/misc/wifi/wpa_supplicant.conf&
然后ps|grepwpa看看有没有起来,在wifi工作过程中,这个进程要始终都在的。
接着启动客户端wpa_cli进行配置并连接wifi热点
130|root@android:/#wpa_cli-p/data/system/wpa_supplicant-iwlan0
wpa_cliv0.8.x
Copyright(c)2004-2011,JouniMalinen<j@w1.fi>andcontributors
Thisprogramisfreesoftware.Youcandistributeitand/ormodifyit
underthetermsoftheGNUGeneralPublicLicenseversion2.
Alternatively,thissoftwaremaybedistributedunderthetermsofthe
BSDlicense.SeeREADMEandCOPYINGformoredetails.
Interactivemode
>
其中/data/system/wpa_supplicant是刚刚启动wpa_supplicant的时候创建的一个套接字
接着进行搜索wifi
>scan
OK
<3>CTRL-EVENT-SCAN-RESULTS
查看搜到的有哪些热点
>scan_result
bssid/frequency/signallevel/flags/ssid
40:16:9f:67:0f:002462-42[WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS][ESS]HHCN-NET
b0:48:7a:49:44:682437-58[WPA2-PSK-CCMP][WPS][ESS]HHTech.Arch
e0:05:c5:97:d8:5a2412-71[WPA-PSK-CCMP][WPA2-PSK-CCMP-preauth][ESS]1103-5
40:16:9f:67:0c:a62412-74[WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS][ESS]hardware
b0:48:7a:49:65:542437-58[WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS]Dept_driver
接着设置wifi,就连接Dept_driver这个热点吧
>add_net
3
>set_net3ssid"Dept_driver"
OK
Dept_driver的加密方式是WPA2-PSK
>set_net3psk"password"
OK
>select_net3
OK
<3>CTRL-EVENT-STATE-CHANGEid=0state=0BSSID=00:00:00:00:0[2752.332061]dhd_aoe_hostip_clrfailedcode-23
0:00
<3>CTR[2752.337768]dhd_aoe_arp_clrfailedcode1
L-EVENT-STATE-CHANGEid=-1state=3BSSID=00:00:00:00:00:00
<3>CTRL-EVENT-DISCONNECTEDbssid=00:00:00:00:00:00reason=0
<3>CTRL-EVENT-STATE-CHANGEid=-1state=0BSSID=00:00:00:00:00:00
<3>CTRL-EVENT-STATE-CHANGEid=-1state=3BSSID=00:00:00:00:00:00
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>Tryingtoassociatewithb0:48:7a:49:65:54(SSID='Dept_driver'freq=2437MHz)
<3>CTRL-EVENT-STATE-CHANGEid=-1state=5BSSID=b0:48:7a:49:65:54
[2753.153717]wl_iw_set_essid:joinSSID=Dept_driverch=6
<3>CTRL-EVENT-STATE-CHANGEid=3state=6BSSID=b0:48:7a:49:65:54
<3>Associatedwithb0:48:7a:49:65:54
<3>CTRL-EVENT-STATE-CHANGEid=3state=7BSSID=00:00:00:00:00:00
<3>CTRL-EVENT-STATE-CHANGEid=3state=8BSSID=00:00:00:00:00:00
<3>WPA:Keynegotiationcompletedwithb0:48:7a:49:65:54[PTK=CCMPGTK=CCMP]
<3>CTRL-EVENT-CONNECTED-Connectiontob0:48:7a:49:65:54completed(reauth)[id=3id_str=]
<3>CTRL-EVENT-STATE-CHANGEid=3state=9BSSID=00:00:00:00:00:00
>enable_net3
OK
>q
这样,就都设置好了,接着用dhcpd分配一个IP地址
root@android:/#dhcpcdwlan0
dhcpcd[3940]:version5.2.10starting
dhcpcd[3940]:hostdoesnotsupportamonotonicclock-timingcanskew
dhcpcd[3940]:wlan0:rebindingleaseof192.168.1.216
dhcpcd[3940]:wlan0:acknowledged192.168.1.216from192.168.1.1`�'
dhcpcd[3940]:wlan0:leased192.168.1.216for7200seconds
dhcpcd[3940]:forkedtobackground,childpid3971
root@android:/#busyboxifconfigwlan0
wlan0Linkencap:EthernetHWaddrAC:E8:7B:89:D3:C0
inetaddr:192.168.1.216Bcast:255.255.255.255Mask:255.255.255.0
inet6addr:fe80::aee8:7bff:fe89:d3c0/64Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:6637errors:0dropped:25overruns:0frame:0
TXpackets:4357errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:3825961(3.6MiB)TXbytes:704832(688.3KiB)
这样就完成了。可以上网了。
CTRL-AZforhelp|1152008N1|NOR|Minicom2.5|VT102|Offline
dhcpcd[1382]:wlan0:ignoringofferof192.168.1.100from192.168.1.1`�'
dhcpcd[1382]:wlan0:NAK:via192.168.1.1
dhcpcd[1382]:wlan0:broadcastingforalease
dhcpcd[1382]:wlan0:offered10.12.3.223from10.12.3.254
dhcpcd[1382]:wlan0:ignoringofferof192.168.1.100from192.168.1.1`�'
dhcpcd[1382]:timedout
dhcpcd[1382]:allowing8secondsforIPv4LLtimeout
dhcpcd[1382]:wlan0:NAK:via192.168.1.1
dhcpcd[1382]:wlan0:broadcastingforalease
dhcpcd[1382]:wlan0:offered10.12.3.223from10.12.3.254
dhcpcd[1382]:wlan0:NAK:via192.168.1.1
dhcpcd[1382]:wlan0:broadcastingforalease
dhcpcd[1382]:wlan0:offered10.12.3.223from10.12.3.254
dhcpcd[1382]:wlan0:NAK:via192.168.1.1
dhcpcd[1382]:wlan0:broadcastingforalease
dhcpcd[1382]:wlan0:offered10.12.3.223from10.12.3.254
dhcpcd[1382]:wlan0:NAK:via192.168.1.1
dhcpcd[1382]:timedout
1|root@android:/#
1|root@android:/#
1|root@android:/#