wpa_supplicant无线网络配置 (2010-09-2116:19:31) HYPERLINK"javascript:;"转载 标签: HYPERLINK"http://uni.sina.com.cn/c.php?t=blog&k=%D4%D3%CC%B8&ts=bpost&stype=tag"\t"_blank"杂谈分类:HYPERLINK"http://blog.sina.com.cn/s/articlelist_1430674247_5_1.html"\t"_blank"WIFI目前可以使用wireless-tools或wpa_supplicant工具来配置无线网络。请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口。 wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络。wireless-tools支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA的AP。 经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant和wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。 如何用wpa_supplicant使能一个wifi连接? Stepbystep: 1、运行wpa_supplicant程序; 执行:/system/bin/wpa_supplicant-d-Dwext-iwlan0-c/data/misc/wifi/wpa_supplicant.conf 其中: -d:增加调试信息 -Dwext:wext,驱动名称 -iwlan0:wlan0,网络接口名称 /system/bin/wpa_supplicant:wpa_supplicant可执行程序path /data/misc/wifi/wpa_supplicant.conf:wpa_supplicant的配置文件path 2、运行命令行工具wpa_cli; 执行:wpa_cli-iwlan0-p/data/system/wpa_supplicant 注,-p/data/system/wpa_supplicant中的wpa_supplicant并不是可执行程序,而是个控制套接字。 此时会进入交互模式。其中交互模式的命令如下表: FullcommandShortcommandDescriptionstatusstatdisplaysthecurrentconnectionstatusdisconnectdiscpreventswpa_supplicantfromconnectingtoanyaccesspointquitqexitswpa_cliterminatetermkillswpa_supplicantreconfigurereconreloadswpa_supplicantwiththeconfigurationfilesupplied(-cparameter)scanscanscansforavailableaccesspoints(onlyscansit,doesn''tdisplayanything)scan_resultscan_rdisplaystheresultsofthelastscanlist_networkslist_ndisplaysalistofconfigurednetworksandtheirstatus(activeornot,enabledordisabled)select_networkselect_nselectanetworkamongthosedefinedtoinitiateaconnection(ieselect_network0)enable_networkenable_nmakesaconfigurednetworkavailableforselection(ieenable_network0)disable_networkdisable_nmakesaconfigurednetworkunavailableforselection(iedisable_network0)remove_networkremove_nremovesanetworkanditsconfigurationfromthelist(ieremove_network0)add_networkadd_naddsanewnetworktothelist.Itsidwillbecreatedautomaticallyset_networkset_nshowsaveryshortlistofavailableoptionstoconfigureanetworkwhensuppliedwithnoparameters. Seenextsectionforalistofextremelyusefulparameterstobeusedwithset_networkandget_network.get_networkget_ndisplaystherequiredparameterforthespecifiednetwork.Seenextsectionforalistofparameterssave_configsave_csavestheconfiguration 设置网络的基本格式:set_network[] 显示网络信息的基本格式:get_network 相应的参数如下表: KeyDescriptionParametersssidAccesspointnamestringid_strStringidentifyingthenetworkstringpriorityConnectionpriorityoverotherAPsnumber(0beingthedefaultlowpriority)bssidMacaddressoftheaccesspointmacaddressscan_ssidEnable/disbalessidscan0,1,2key_mgmtTypeofkeymanagementWPA-PSK,WPA_EAP,NonepairwisePairwiseciphersforWPACCMP,TKIPgroup=TKIPGroupciphersforWPACCMP,TKIP,WEP104,WEP40pskPre-SharedKey(clearorencrypted)stringwep_key0WEPkey(upto4:wep_key[0123])stringeapExtensibleAuthenticationProtocolMD5,MSCHAPV2,OTP,GTC,TLS,PEAP,TTLSidentityEAPidentitystringstringpasswordEAPpasswordstringca_certPathnametoCAcertificatefile/full/path/to/certificateclient_certPathnametoclientcertificate/full/path/to/certificate(PEM/DER)private_keyPathnametoaclientprivatekeyfile/full/path/to/private_key(PEM/DER/PFX)eg.1、连接无加密的AP >add_network(Itwilldisplayanetworkidforyou,assumeitreturns0) >set_network0ssid"666" >set_network0key_mgmtNONE >enable_network0 >quit eg.2、连接WEP加密AP >add_network(assumereturn1) >set_network1ssid"666" >set_network1key_mgmtNONE >set_network1wep_key0"yourappassword" >enable_network1 eg.3、连接WPA-PSK/WPA2-PSK加密的AP >add_network(assumereturn2) >set_network2ssid"666" >set_network2psk"yourpre-sharedkey" >enable_network2 到此,wifi模块就能连接上AP了。 3、以上是通过命令行工具wpa_cli来实现wifi网络的连接。当然,也可以通过wpa_supplicant的配置文件来实现连接。 再回顾下运行wpa_supplicant时执行的命令: /system/bin/wpa_supplicant-d-Dwext-iwlan0-c/data/misc/wifi/wpa_supplicant.conf 我们在执行时加上了-c/data/misc/wifi/wpa_supplicant.conf,我们可以将我们要连接的AP的设置以一定的格式写入wpa_supplicant.conf配置文件中即可。 eg. ctrl_interface=DIR=/data/system/wpa_supplicantGROUP=systemupdate_config=1 network={ ssid="myaccesspoint" proto=WPA key_mgmt=WPA-PSK psk="youpasswords" } |
|