感谢支持
我们一直在努力

水星MW54U无线网卡在嵌入式Linux下驱动的配置问题

本篇基于友善之臂的mini2440 arm9开发平台,使用官方配套的根文件系统和内核树。


水星MW54U无线网卡是基于Rt2571无线网卡芯片的,属于ralink公司的rt73体系,和rt2500有些不同,在连接初始化配置时需要从主机加载镜像文件,在使用ifconfig命令激活时需要将rt73 firmware 文件通过usb接口传递到芯片上的51单片机上。


Linux内核已经包含了Ralink常见各系列的USB无线网络芯片的驱动程序,通过menuconfig工具配置


Network supports->wireless->Generic IEEE 802.11 Networking stack项和


General setup->Prompt for development and/or incomplete code/drivers项后


(根据Kconfig文件的依赖关系分析得出),可在


Device driver->Networking device support->wireless LAN->Ralink driver support项的


子菜单中选择rt2501(rt73)驱动对应的项编译进内核,安装启动内核,该无线网卡就能在系统中被识别成网络设备了,但是如果该驱动程序依赖的firmware文件rt73.bin没有在构建根文件系统时加进系统中,则在执行ifconfig wlan0 up启动网卡时出现:


phy2 -> rt2x00lib_request_firmware: Info – Loading firmware file ‘rt73.bin’.


rt73usb 1-1:1.0: firmware: requesting rt73.bin


phy2 -> rt2x00lib_request_firmware: Error – Failed to request Firmware.


ifconfig: SIOCSIFFLAGS: No such file or directory


提示找不到rt73.bin文件。


解决思路与方法:缺少rt73.bin这个文件自然就要我们加进去,但是需要放在什么地方驱动程序才能找到呢?


开始试着修改驱动程序rt73.h头文件里的宏,重新编译后来还是有问题,成功的做法如下:


Ubuntu使用的是同样的内核驱动代码,可以正确配置该网卡,相同代码的行为应该一样,可以参考ubuntu的做法,在ubuntu下查找rt73.bin文件,发现该文件位于/lib/firmware/下,在目标板上创建/lib/firmware目录并把rt73.bin拷贝到该目录,最后执行ifconfig wlan0 up,就可以启动该网络设备了,提示如下(我是开启了内核的Ralink debug output选项的,不需要可以关闭):


phy2 -> rt2x00lib_request_firmware: Info – Loading firmware file ‘rt73.bin’. rt73usb 1-1:1.0: firmware: requesting rt73.bin phy2 -> rt2x00lib_request_firmware: Info – Firmware detected – version: 1.7. phy2 -> rt2x00mac_conf_tx: Info – Configured TX queue 0 – CWmin: 5, CWmax: 10, A ifs: 2, TXop: 0. phy2 -> rt2x00mac_conf_tx: Info – Configured TX queue 1 – CWmin: 5, CWmax: 10, A ifs: 2, TXop: 0. phy2 -> rt2x00mac_conf_tx: Info – Configured TX queue 2 – CWmin: 5, CWmax: 10, A ifs: 2, TXop: 0. phy2 -> rt2x00mac_conf_tx: Info – Configured TX queue 3 – CWmin: 5, CWmax: 10, A ifs: 2, TXop: 0.


下一步需要进行无线网络的配置。

赞(0) 打赏
转载请注明出处:服务器评测 » 水星MW54U无线网卡在嵌入式Linux下驱动的配置问题
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏