@SiberiaBear
2016-07-20T21:39:19.000000Z
字数 3486
阅读 5929
Embedded-Linux
近几天,由于项目需要,对IMX6板卡的无线通信功能进行调试,现在基本调试结束,做如下总结,以作为自己的开发笔记与参考。
日期:2016-7-1
最初开发RTL8723as芯片,是邮票孔焊接芯片,是从飞凌公司购买的芯片并焊接到预留的飞凌开发板上。
出现的问题是:
CheckPbcGPIO - PBC is pressed
RTL871X: ==>rtw_ps_processor .fw_state(0)
RTL871X: ==>ips_enter cnts:1
RTL871X: nolinked power save enter
RTL871X: ===> rtw_ips_pwr_down...................
RTL871X: ====> rtw_ips_dev_unload...
RTL871X: usb_read_port_cancel
RTL871X: usb_read_port_complete()-1462: RX Warning! bDriverStopped(0) OR bSurpriseRemoved(0) bReadPortCancel(1)
RTL871X: usb_read_port_complete()-1462: RX Warning! bDriverStopped(0) OR bSurpriseRemoved(0) bReadPortCancel(1)
RTL871X: usb_read_port_complete()-1462: RX Warning! bDriverStopped(0) OR bSurpriseRemoved(0) bReadPortCancel(1)
RTL871X: usb_read_port_complete()-1462: RX Warning! bDriverStopped(0) OR bSurpriseRemoved(0) bReadPortCancel(1)
RTL871X: usb_read_interrupt_complete() RX Warning! bDriverStopped(0) OR bSurpriseRemoved(0) bReadPortCancel(1)
RTL871X: rtl8723au_inirp_deinit pHalData->IntrMask = 0x0500
RTL871X: usb_write_port_cancel
RTL871X: ==> rtl8723au_hal_deinit
RTL871X: CardDisableRTL8723U
RTL871X: <=== rtw_ips_pwr_down..................... in 100ms
在谷歌上从查找了很多资料和论坛,部分认为和驱动有关,我也抱着这种心理去查,最后在一个国内论坛https://github.com/lwfinger/rtl8723bu/issues/5 上找到一个办法:
安装模块时,加入rtw_ips_mode=0参数,如:
insmod 8723au.ko rtw_ips_mode=0
这样,我糊里糊涂的解决了这个问题。
后来出现了另一个问题:
RTL871X: CheckPbcGPIO - PBC is pressed
始终循坏这个调试信息,可以认为存在问题。
从驱动源码中可以找到这句调试信息的出处http://lxr.free-electrons.com/source/drivers/staging/rtl8723au/hal/rtl8723a_dm.c ,但我不才,无法找到问题出在哪里。
后来发现,我焊接的是RTL8723as模块,但驱动是8723au,我猜测会不会是这里有问题,没有搞过8723as的驱动,所以这块先放放。
这个没啥好说的,调试发现系统根本无法识别设备时无线网卡,后来查官方给的资料,说所给的驱动只支持以下几种USB设备:
rtl8188cus, tl-wn725n 1.1, tl-wn725n 1.0, EP-N8508GS
而我这个是2.0,果断放弃了。
后来找到了一个8188CUS的无线网卡,USB接口,接入后,也遇到了上文第一个问题:
==>rtw_ps_processor .fw_state(8)
==>ips_enter cnts:3
===> rtw_ips_pwr_down...................
====> rtw_ips_dev_unload...
usb_read_port_cancel
usb_read_port_complete()-1284: RX Warning! bDriverStopped(0) OR bSurpriseRemoved(0) bReadPortCancel(1)
usb_read_port_complete()-1284: RX Warning! bDriverStopped(0) OR bSurpriseRemoved(0) bReadPortCancel(1)
usb_read_port_complete()-1284: RX Warning! bDriverStopped(0) OR bSurpriseRemoved(0) bReadPortCancel(1)
usb_read_port_complete()-1284: RX Warning! bDriverStopped(0) OR bSurpriseRemoved(0) bReadPortCancel(1)
usb_write_port_cancel
==> rtl8192cu_hal_deinit
bkeepfwalive(0)
card disble without HWSM...........
<=== rtw_ips_pwr_down..................... in 80ms
通过添加模块是加入参数的方式解决,然后后边没有遇到问题,正常通信,通信问题得到解决。
后来又遇到一个问题,关于密码的,当输入iwconfig wlan0 key [your key]
时,提示:
Error for wireless request "Set Encode" (8B2A) :
invalid argument "your key".
经过简单的查资料,了解到:
iwconfig工具只能支持开放网络和具有WEP加密的无线网络;
如果需要支持WPA或WPA2 PSK加密的无线网络,需要安装wpa_supplicant;
另外还有一个比iwconfig先进一些的工具是iw;
在iwconfig的命令key中,如果秘钥是ASCII码,需要在前边加s:
符号;
所以,解决办法是:iwconfig wlan0 key s:[your key]
|
lsmod
rmmod [module name]
cd /lib/module/wifi/
insmod [module name] rtw_ips_mode=0
ifconfig wlan0
ifconfig wlan0 up
ifconfig wlan0 down
iwlist wlan0 scan
iwconfig wlan0 essid [your wifi id]
iwconfig wlan0 key s:[your key]
udhcpc -iwlan0
route
route add default gw [gateway ip]