我正在尝试构建一个内核模块来使用雷凌RT5370Wi-Fi USB 设备,带有 lsusb ID 148f:5370
。我的主机是一台NAS,Linux内核基于2.6.33.2版本。
我从以下网站下载了驱动程序源联发科技网站我几乎处于所描述的相同情况这里;编译后的内核模块rt5370sta.ko
似乎可以正确加载,因为:
[/share/Public/ralink/alt] # insmod rt5370sta.ko
[/share/Public/ralink/alt] # dmesg -c
rtusb init rt2870 --->
=== pAd = f9d70000, size = 511776 ===
<-- RTMPAllocAdapterBlock, Status=0
Efuse Size=0x2d [2d0-2fc]
NVM is EFUSE
usbcore: registered new interface driver rt2870
但是当建立界面时问题就开始了,特别是RTUSBBulkReceive:提交 Rx URB 失败 -22信息:
[/share/Public/ralink/alt] # ifconfig ra0 up
[/share/Public/ralink/alt] # dmesg -c
RtmpAsicLoadFirmware: ver 21/21, sum cdf7/cdf7, mac cdf72100
NICLoadFirmware: firmware loaded already
<-- RTMPAllocTxRxRingMemory, Status=0
RTMP_TimerListAdd: add timer obj f9db81c4!
RTMP_TimerListAdd: add timer obj f9db81f0!
RTMP_TimerListAdd: add timer obj f9db821c!
RTMP_TimerListAdd: add timer obj f9db8198!
RTMP_TimerListAdd: add timer obj f9db8114!
RTMP_TimerListAdd: add timer obj f9db8140!
RTMP_TimerListAdd: add timer obj f9d8295c!
RTMP_TimerListAdd: add timer obj f9d71f90!
RTMP_TimerListAdd: add timer obj f9d71fc0!
RTMP_TimerListAdd: add timer obj f9d829f4!
RTMP_TimerListAdd: add timer obj f9d82904!
RTMP_TimerListAdd: add timer obj f9d829c4!
-->RTUSBVenderReset
<--RTUSBVenderReset
Key1Str is Invalid key length(0) or Type(0)
Key2Str is Invalid key length(0) or Type(0)
Key3Str is Invalid key length(0) or Type(0)
Key4Str is Invalid key length(0) or Type(0)
1. Phy Mode = 5
2. Phy Mode = 5
NVM is Efuse and its size =2d[2d0-2fc]
phy mode> Error! The chip does not support 5G band 15!
RTMPSetPhyMode: channel is out of range, use first channel=1
3. Phy Mode = 9
AntCfgInit: primary/secondary ant 0/1
NICInitRT5390RFRegisters: Initialize frequency - EEPROM = 46, RF_R17 = 46
AsicSetRxAnt, switch to main antenna
bAutoTxAgcG = 0
---> InitFrequencyCalibration
InitFrequencyCalibration: frequency offset in the EEPROM = 46
<--- InitFrequencyCalibration
MCS Set = ff 00 00 00 01
RTUSBBulkReceive: Submit Rx URB failed -22
<==== rt28xx_init, Status=0
0x1300 = 00064300
当然它不会扫描超支开始递增:
[/share/Public/ralink/alt] # /usr/local/bin/iwlist ra0 scan
ra0 No scan results
[/share/Public/ralink/alt] # ifconfig ra0
ra0 Link encap:Ethernet HWaddr 1C:BF:XX:XX:XX:XX
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:1098 frame:1098
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:3400 (3.3 KiB)
在这种情况下,检查消息再次导致很多这样的情况-22错误:
[/share/Public/ralink/alt] # dmesg -c
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
CMDTHREAD_RESET_BULK_IN: Submit Rx URB failed(-22), status=0
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
RTUSBBulkOutMLMEPacket: Submit MLME URB failed -22
CMDTHREAD_RESET_BULK_IN: Submit Rx URB failed(-22), status=0
CMDTHREAD_RESET_BULK_IN: Submit Rx URB failed(-22), status=0
所以我的问题是:什么是RTUSBBulkOutMLMEPacket:提交 MLME URB 失败 -22意思是如果可能的话如何解决?我无法在任何地方找到此信息。