免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 5937 | 回复: 32
打印 上一主题 下一主题

求rt73usb 网卡分析资料 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-22 17:40 |只看该作者 |倒序浏览
最近在做一个ralink网卡的项目,只前一直在做madwifi,对rt73了解不是很多,rt73源code不是很多,但读起来理解也不是很方便,有同行有这方面的资料和经验,请帮忙一下,啃code实在太慢了,特别是有些定义什么的?

论坛徽章:
0
2 [报告]
发表于 2009-07-22 20:19 |只看该作者
realtek的东西?

论坛徽章:
0
3 [报告]
发表于 2009-07-22 23:29 |只看该作者
资料少,只能啃代码了

论坛徽章:
0
4 [报告]
发表于 2009-07-23 09:33 |只看该作者
最好别用Ranlink的芯片了,之前使用它们的RT73芯片作AP用,结果驱动有bug, iwconfig ra0命令都会报段错误,抛Oops,系统宕机。

  现在换成RT2070芯片,结果驱动在ifconfig ra0 up时特别地慢(30多秒),跟Ranlink的人说了都一个多月了,到现在都没解决。

  Ranlink的软AP驱动是有非常多的bug的,都不敢用了。技术支持也不咋地,而且资料也特别少,更糟糕的是,有些文档和代码都不一致,看起来害得死人,最后还是得啃代码!

[ 本帖最后由 dglwx 于 2009-7-23 09:34 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-07-23 11:57 |只看该作者

回复 #4 dglwx 的帖子

大哥,没办法了,方案是别人定的,就看中rt73的usb 芯片,只能硬着上了,不过我们不是做AP,就是相当于网卡外加二层管理功能了。不过网卡驱动不好,一定会影响性能的

论坛徽章:
0
6 [报告]
发表于 2009-07-23 22:05 |只看该作者
这个标题看了两天了,真不知道该怎么说。我接触rt73已经有半年了。感觉就是累,不想用,但是工作吗。
rt73已经没有技术支持了,Ranlink的技术人员非常少,而且很牛气,不愿意理人,当然,东西也是非常的差。
我遇到的bug是,芯片过热,然后导致usb通信错误,由于驱动使用内核线程,而且线程没有纠错功能,从而100%CPU占用,重启需要关闭端口与驱动相关的操作,但是驱动没有返回,从而lockup,只能断电。
还有一个,用dhclient取动态地址,不知道是dhclient的问题还是驱动的问题,总会在取地址的时候有一个短暂的关闭端口,然后马上开启端口的动作。(到现在我都没搞明白,真是太笨了。如果有大侠知道,请指点一下。)从而导致前面的essid, mode, key的设置丢失,而无法取的地址。
如果有什么,可以一起讨论。但是让别人直接给你分析,好像…… 反正我害怕。

论坛徽章:
0
7 [报告]
发表于 2009-07-24 10:14 |只看该作者
当然,我也知道想要详细的分析资料是不抱太大指往,没办法还是在网上抱点希望,得点支持,不过有几个方向还是要搞明白的,1)信道扫描,读写reg, 因为我们要改掉2.4G的扫描方式,要降频 2)读写过程,要外加处理数据包,甚至加vlan处理。不可想像,唉

论坛徽章:
0
8 [报告]
发表于 2009-07-24 21:50 |只看该作者
对于reg 的读写应该都在rtusb_io.c里面了,都是通过URB包发送,接受的。关于如何改频率就不知道了。vlan处理肯定是要在接受urb包的时候分析了。原理上来说倒是还可以,主要是改频率这个要知道具体的命令。
rt73的驱动是用状态机实现的,读起来有点乱。我也没有深入的研究。
发包,收包主要是rtusb_io.c,和rtusb_bulk.c。
分析,建议从rtmp_main.c开始,看他是怎么初始化的。然后看rtmp_info.c,了解他是如何接受应用程序命令,然后处理的。

论坛徽章:
0
9 [报告]
发表于 2009-07-27 10:10 |只看该作者

回复 #8 llzzccc 的帖子

谢谢llzzccc, 是的,我也是按你这种方法去读code的,里面的beacon miss 明明是4s时间,为什么注释是2s,打印出来却是400us 啊?是不是HZ有其它定乙,不是1s?
#define BEACON_LOST_TIME            (4*HZ)      // 2048 msec = 2 sec

if (INFRA_ON(pAd) &&
                (TxOkCnt < 2) && // no heavy traffic
                (pAd->PortCfg.LastBeaconRxTime + BEACON_LOST_TIME < Now32))
        {
                DBGPRINT(RT_DEBUG_TRACE, "BEACON lost > %d msec with TxOkCnt=%d -> CQI=0\n", BEACON_LOST_TIME, TxOkCnt);
                pAd->Mlme.ChannelQuality = 0;
        }
打印信息是
-RT73-BEACON lost > 400 msec with TxOkCnt=0 -> CQI=0
-RT73-MMCHK - No BEACON. Dead CQI. Auto Recovery attempt #0

论坛徽章:
0
10 [报告]
发表于 2009-07-27 14:19 |只看该作者
rt73的状态机真是让人头疼,为了理清扫描过程,打印一些扫描信息,可信息打应出来都不知道什么时候有触发其它的状态,看出来乱乱的,让人头疼?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP