- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FAST驱动问题
解决FAST迅捷FW54U驱动问题??
2011-02-22 17:11:55|??分类: WLAN |??标签: |字号大中小?订阅
?????? 第一次接触BackTrack时就遇到了所购买的无线网卡不被Backtrack所支持的问题。按照BackTrack的说明Zydas 1211的驱动从Bt3就开始支持,可是我买的FAST迅捷FW54U的网卡以及另一个同为Zydas 1211的无线网卡在BT下却怎么也用不起来。总不能眼看着刚买来的新网卡就此退休吧,于是只有动手自己编译Linux下的驱动,开始令人郁闷的折腾过程。?????? 经过很多次的摸索和尝试,最终彻底解决了Zydas 1211b在Linux下的驱动问题。看到网上有关这个问题的讨论还不少,看来很多人都遇到了这个问题。现将我对这个问题的理解及解决方法整理出来,希望对大家有所帮助。?????? 当网卡不被Linux所支持时,首先需要确定无线网卡所使用的芯片类型及对应的驱动程序。Usb接口的无线网卡,在Linux下可以使用Lsusb/USBView(/feisty/x11/usbview)查看芯片类型及Usb设备的ID号。对于我的FW54U而言,驱动类型为Zd1211rw,设备ID为0x0ace, 0x1215。?????? google后得知,很多人解决Zd1211rw不支持问题时都是因为源代码中没有包含设备ID,而网卡配套光盘中的源代码确实没有包含这个设备ID于是以为采用同样的方法可以解决我的问题。由于编译过程产生了很多的错误,于是开始了反反复复的编译过程.....?????? 在进一步的查询资料后,前往ZD1211专业网站知道目前有三种版本的驱动,其中建议使用 zd1211rw 这个版本,因为它在多次更新后已纳入到 Linux 2.6.18 以后的 kernel 中。zd1211rw 支持三种芯片:? ? * ZyDAS ZD1211? ? * ZyDAS ZD1211B? ? * Atheros AR5007UG?????? 查看Linux Kernel内核源代码(Bt3 2.6.21)后确实在内核源代码drivers/net/wireless/目录下找到了zd1211rw的驱动文件。?但是打开zd_usb.c文件后却可以看到该驱动实际上已经包含了该设备ID:?? ??/* ZD1211B */? ?? 62:{ USB_DEVICE(0x0ace, 0x1215), .driver_info = DEVICE_ZD1211B },? ??? 哪么为什么已经包含了还是不行呢,而且BT3 Final的说明中也可以看到支持zd1211rw的声明。?????? 一番仔细的查证后发现插上网卡时内核有? ? RF MAXIM_NEW_RF is not supported的提示,怀疑是否驱动在这里出了问题。产生该提示的语句位于文件zd_rf.c的zd_rf_init_hw中,代码如下:? ? int zd_rf_init_hw(struct zd_rf *rf, u8 type)?{? ?? ???int r = 0;? ?? ???int t;? ?? ???struct zd_chip *chip = zd_rf_to_chip(rf);? ? ? ?? ???ZD_ASSERT(mutex_is_locked(chip-mutex));? ?? ???switch (type) {? ?? ???case RF2959_RF:? ?? ?? ?? ?r = zd_rf_init_rf2959(rf);? ?? ?? ?? ?break;? ?? ???case AL2230_RF:? ?? ???case AL2230S_RF:? ?? ?? ?? ?r = zd_rf_init_al2230(rf);? ?? ?? ?? ?break;? ?? ???case AL7230B_RF:? ?? ?? ?? ?r = zd_rf_init_al7230b(rf);? ?? ?? ?? ?break;? ?? ???default:? ?? ?? ?? ?dev_err(zd_chip_dev(chip),? ?? ?? ?? ?? ? RF %s %#x is not supported\n, zd_rf_name(type), type);? ?? ?? ?? ?rf-type = 0;? ?? ?? ?? ?return -ENODEV;? ? }? ???? 看来是由于找不到合适的RF类型,而使网卡不能初始化,驱动当然也不能正常加载了。由于不确定应该使用那个初始化函数,于是随便指定RF295
文档评论(0)