原文: http://blog.csdn.net/laojing123/article/details/7719132
Android系統中對于WIFI的設定內建到了“設定”中,其實跟手動設定差不多。這裡介紹下如何手動連接配接WIFI,以友善以後調試WIFI。
第一步要做的就是要加載WIFI子產品驅動了。當然如果你的WIFI是編譯到核心裡面的,就不需要的。我們的WIFI晶片用的是BCM4330,編譯為子產品。
insmod /system/lib/modules/kernel/drivers/net/wireless/bcm4330/bcm4330.ko firmware_path=/system/vendor/firmware/bcm4330.bin \ nvram_path=/system/vendor/firmware/nvram.txt
這樣驅動子產品加載後,需要啟動wpa_supplicant
[email protected]:/ # wpa_supplicant -Dwext -iwlan0 -C/data/system/wpa_supplicant -c/data/misc/wifi/wpa_supplicant.conf &
然後ps|grep wpa看看有沒有起來,在wifi工作過程中,這個程序要始終都在的。
接着啟動用戶端wpa_cli進行配置并連接配接wifi熱點
130|[email protected]:/ # wpa_cli -p/data/system/wpa_supplicant -iwlan0
wpa_cli v0.8.x
Copyright (c) 2004-2011, Jouni Malinen <[email protected]> and contributors
This program is free software. You can distribute it and/or modify it
under the terms of the GNU General Public License version 2.
Alternatively, this software may be distributed under the terms of the
BSD license. See README and COPYING for more details.
Interactive mode
>
其中/data/system/wpa_supplicant 是剛剛啟動wpa_supplicant的時候建立的一個套接字
接着進行搜尋wifi
> scan
OK
<3>CTRL-EVENT-SCAN-RESULTS
檢視搜到的有哪些熱點
> scan_result
bssid / frequency / signal level / flags / ssid
40:16:9f:67:0f:00 2462 -42 [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS][ESS] HHCN-NET
b0:48:7a:49:44:68 2437 -58 [WPA2-PSK-CCMP][WPS][ESS] HHTech.Arch
e0:05:c5:97:d8:5a 2412 -71 [WPA-PSK-CCMP][WPA2-PSK-CCMP-preauth][ESS] 1103-5
40:16:9f:67:0c:a6 2412 -74 [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS][ESS] hardware
b0:48:7a:49:65:54 2437 -58 [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS] Dept_driver
接着設定wifi,就連接配接Dept_driver這個熱點吧
> add_net
3
> set_net 3 ssid "Dept_driver"
OK
Dept_driver的加密方式是WPA2-PSK
> set_net 3 psk "password"
OK
> select_net 3
OK
<3>CTRL-EVENT-STATE-CHANGE id=0 state=0 BSSID=00:00:00:00:0[ 2752.332061] dhd_aoe_hostip_clr failed code -23
0:00
<3>CTR[ 2752.337768] dhd_aoe_arp_clr failed code 1
L-EVENT-STATE-CHANGE id=-1 state=3 BSSID=00:00:00:00:00:00
<3>CTRL-EVENT-DISCONNECTED bssid=00:00:00:00:00:00 reason=0
<3>CTRL-EVENT-STATE-CHANGE id=-1 state=0 BSSID=00:00:00:00:00:00
<3>CTRL-EVENT-STATE-CHANGE id=-1 state=3 BSSID=00:00:00:00:00:00
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>Trying to associate with b0:48:7a:49:65:54 (SSID='Dept_driver' freq=2437 MHz)
<3>CTRL-EVENT-STATE-CHANGE id=-1 state=5 BSSID=b0:48:7a:49:65:54
[ 2753.153717] wl_iw_set_essid: join SSID=Dept_driver ch=6
<3>CTRL-EVENT-STATE-CHANGE id=3 state=6 BSSID=b0:48:7a:49:65:54
<3>Associated with b0:48:7a:49:65:54
<3>CTRL-EVENT-STATE-CHANGE id=3 state=7 BSSID=00:00:00:00:00:00
<3>CTRL-EVENT-STATE-CHANGE id=3 state=8 BSSID=00:00:00:00:00:00
<3>WPA: Key negotiation completed with b0:48:7a:49:65:54 [PTK=CCMP GTK=CCMP]
<3>CTRL-EVENT-CONNECTED - Connection to b0:48:7a:49:65:54 completed (reauth) [id=3 id_str=]
<3>CTRL-EVENT-STATE-CHANGE id=3 state=9 BSSID=00:00:00:00:00:00
> enable_net 3
OK
> q
這樣,就都設定好了,接着用dhcpd配置設定一個IP位址
[email protected]:/ # dhcpcd wlan0
dhcpcd[3940]: version 5.2.10 starting
dhcpcd[3940]: host does not support a monotonic clock - timing can skew
dhcpcd[3940]: wlan0: rebinding lease of 192.168.1.216
dhcpcd[3940]: wlan0: acknowledged 192.168.1.216 from 192.168.1.1 `�'
dhcpcd[3940]: wlan0: leased 192.168.1.216 for 7200 seconds
dhcpcd[3940]: forked to background, child pid 3971
[email protected]:/ # busybox ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr AC:E8:7B:89:D3:C0
inet addr:192.168.1.216 Bcast:255.255.255.255 Mask:255.255.255.0
inet6 addr: fe80::aee8:7bff:fe89:d3c0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6637 errors:0 dropped:25 overruns:0 frame:0
TX packets:4357 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3825961 (3.6 MiB) TX bytes:704832 (688.3 KiB)
這樣就完成了。可以上網了。