手头一台使用rtl8188eus的设备,之前调试wifi功能的时候本来OK的,昨天从AP切换到Station模式时,发现连接不上路由器了。提示如下错误:
wpa_supplicant: can't load library 'libssl.so.0.9.8'
于是找到以前移植的openssl-0.9.8e的库,下载到设备的lib目录下,建立软链接后,重新运行。依旧连接不上网络,查看wifi驱动的调试信息,如下:
wpa_supplicant v2.5
random: Trying to read entropy from /dev/random
Successfully initialized wpa_supplicant
Initializing interface 'wlan0' conf '/usr/app/config/wpa_supplicant.conf' driver
Configuration file '/usr/app/config/wpa_supplicant.conf' -> '/usr/app/config/wpa
Reading configuration file '/usr/app/config/wpa_supplicant.conf'
ctrl_interface='/var/run/wpa_supplicant'
Priority group 0
id=0 ssid='MERCURY'
rfkill: Cannot open RFKILL control device
WEXT: RFKILL status not available
SIOCGIWRANGE: WE(compiled)=22 WE(source)=16 enc_capa=0xf
capabilities: key_mgmt 0xf enc 0x1f flags 0x0
ioctl[SIOCSIWAP]: Operation not permitted
WEXT: Failed to clear BSSID selection on disconnect
WEXT: Driver: rtl8188eu
netlink: Operstate: ifindex=3 linkmode=1 (userspace-control), operstate=5 (IF_OP
Add interface wlan0 to a new radio N/A
wlan0: Own MAC address: 20:f4:1b:55:a4:8f
wpa_driver_wext_set_key: alg=0 key_idx=0 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=1 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=2 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_key: alg=0 key_idx=3 set_tx=0 seq_len=0 key_len=0
wpa_driver_wext_set_countermeasures
wlan0: RSN: flushing PMKID list in the driver
wlan0: Setting scan request: 0.100000 sec
ENGINE: Loading dynamic engine
ENGINE: Loading dynamic engine
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: Supplicant port status: Unauthorized
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
Using existing control interface directory.
ctrl_iface bind(PF_UNIX) failed: Address already in use
ctrl_iface exists, but does not allow connections - assuming it was leftover from forced program termination
Successfully replaced leftover ctrl_iface socket '/var/run/wpa_supplicant/wlan0'
wlan0: Added interface wlan0
wlan0: State: DISCONNECTED -> DISCONNECTED
wpa_driver_wext_set_operstate: operstate 0->0 (DORMANT)
netlink: Operstate: ifindex=3 linkmode=-1 (no change), operstate=5 (IF_OPER_DORMANT)
Daemonize..
手动运行wpa_supplicant服务时,报错如下:
Failed to connect to non-global ctrl_ifname: wlan0 error: Connection refused
回到之前编译移植rtl8188eus驱动和wpa_supplicant工具的目录,才发现问题,我使用的wpa_supplicant是2.5版本的,它对应的openssl版本号为openssl-0.9.8za和 openssl-0.9.8zf
而前面步骤中下载的是 openssl-0.9.8e版本的。
重新换用openssl-0.9.8za的库,再次连接路由器,问题解决!