커널 모듈을 만들어서 사용하려고 합니다.라링크 RT5370lsusb ID가 있는 Wi-Fi USB 장치입니다 148f:5370
. 내 호스트는 버전 2.6.33.2 기반의 Linux 커널을 사용하는 NAS입니다.
드라이버 소스를 다음에서 다운로드했습니다.미디어텍 웹사이트그리고 나는 설명된 것과 거의 같은 상황에 있습니다여기; 컴파일된 커널 모듈은 다음 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)
이런 상황에서 확인해보면dmesg다시 한 번 그런 일이 많이 발생합니다-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가능하다면 의미와 해결 방법은 무엇입니까? 이 정보는 어디서도 찾을 수 없었습니다.