Project

General

Profile

Bug #3406

Ralink RT2571W - RT2501USB - rum wifi driver

Added by Julien Gueytat over 7 years ago. Updated over 7 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
driver - device drivers
Start date:
2012-12-09
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

Hi,

I have the following device:
15A9:0004 Gemtek WUBR-177G - Ralink RT2571W

This device is supposed to work with the rum driver.
I can connect and authentificate to my wireless access point (sometimes) but still reach the lowest rate possible all the time (rate = 2).

I added already some options to /etc/system:
set net80211:ieee80211_debug = 0xffffffff
set rum:rum_dbg_flags = 0xffffffff

And I installed wireshark.

Could you please tell me which information you need to help to have a normal connection with this device and driver.

Thanks a lot,
Julien


Files

messages.txt (282 KB) messages.txt Julien Gueytat, 2012-12-09 01:21 PM
messages_starting_connection.txt (104 KB) messages_starting_connection.txt Julien Gueytat, 2012-12-09 09:28 PM
wireshark_starting_connection.txt (17 KB) wireshark_starting_connection.txt Anonymous, 2012-12-14 01:25 AM
openbsd-rum-hostap-beacon-fix.patch (969 Bytes) openbsd-rum-hostap-beacon-fix.patch Anonymous, 2012-12-14 02:00 AM

History

#1

Updated by Enrico Papi over 7 years ago

paste or attach /var/adm/messages file log here

#2

Updated by Julien Gueytat over 7 years ago

Gemtek WUBR-177G [Ralink RT2571W]

node name: device
Vendor: Gemtek
Device: WUBR-177G [Ralink RT2571W]
Sub-Vendor: Sub-System: binding name: usb15a9,4
devfs path: /pci@0,0/pci103c,2a66@2,1/device@9
bus addr: 9
compatible name: (usb15a9,4.1)(usb15a9,4)(usbif15a9,classff.ff.ff)(usbif15a9,classff.ff)(usbif15a9,classff)(usbif,classff.ff.ff)(usbif,classff.ff)(usbif,classff)(usb,device)
driver name: rum
instance: 0
driver state: Attached
driver-minor: 0
driver-major: 2
high-speed: TRUE
usb-product-name: 802.11 bg WLAN
usb-vendor-name: Ralink
usb-raw-cfg-descriptors: 9
usb-dev-descriptor: 12
usb-release: 200
usb-num-configs: 1
usb-revision-id: 1
usb-product-id: 4
usb-vendor-id: 15a9
compatible: usb15a9,4.1
reg: 9
assigned-address: 5

prtconf -vD

device, instance #0 (driver name: rum)
Hardware properties:
name='driver-minor' type=int items=1
value=00000000
name='driver-major' type=int items=1
value=00000002
name='high-speed' type=boolean
name='usb-product-name' type=string items=1
value='802.11 bg WLAN'
name='usb-vendor-name' type=string items=1
value='Ralink'
name='usb-raw-cfg-descriptors' type=byte items=53
value=09.02.35.00.01.01.00.80.96.09.04.00.00.05.ff.ff.ff.00.07.05.81.02.00.02.00.07.05.01.02.00.02.00.07.05.02.02.00.02.00.07.05.03.02.00.02.00.07.05.04.02.00.02.00
name='usb-dev-descriptor' type=byte items=18
value=12.01.00.02.00.00.00.40.a9.15.04.00.01.00.01.02.00.01
name='usb-release' type=int items=1
value=00000200
name='usb-num-configs' type=int items=1
value=00000001
name='usb-revision-id' type=int items=1
value=00000001
name='usb-product-id' type=int items=1
value=00000004
name='usb-vendor-id' type=int items=1
value=000015a9
name='compatible' type=string items=9
value='usb15a9,4.1' + 'usb15a9,4' + 'usbif15a9,classff.ff.ff' + 'usbif15a9,classff.ff' + 'usbif15a9,classff' + 'usbif,classff.ff.ff' + 'usbif,classff.ff' + 'usbif,classff' + 'usb,device'
name='reg' type=int items=1
value=00000009
name='assigned-address' type=int items=1
value=00000005
Device Minor Nodes:
dev=(113,1)
dev_path=/pci@0,0/pci103c,2a66@2,1/device@9:rum0
spectype=chr type=minor
dev_link=/dev/rum0
dev_link=/dev/wifi/rum0
dev_path=/pci@0,0/pci103c,2a66@2,1/device@9:rum0
spectype=chr type=minor
dev_link=/dev/rum0
dev_link=/dev/wifi/rum0
dev=(113,1006)
dev_path=<clone>
Device Minor Layered Under:
mod=udp6 accesstype=chr
dev_path=/pseudo/udp6@0
dev=(113,1007)
dev_path=<clone>
Device Minor Layered Under:
mod=udp accesstype=chr
dev_path=/pseudo/udp@0
dev=(113,1005)
dev_path=<clone>
Device Minor Layered Under:
mod=udp accesstype=chr
dev_path=/pseudo/udp@0

/var/adm/messages (file attached)

#3

Updated by Julien Gueytat over 7 years ago

Done! :)

Enrico Papi wrote:

paste or attach /var/adm/messages file log here

#4

Updated by Julien Gueytat over 7 years ago

It is may be important: I have two wireless access point with the same SSID. I should connect to the closest one.

#6

Updated by Julien Gueytat over 7 years ago

Ok I began to play with DTrace. I think I can handle some debug myself but I need to understand the driver sources to choose DTrace probe properly. Could you help me to track the good functions?
Basically I think there is a trouble with the two hotspot I have with the same SSID. Otherwise I know that the rum_ratectl always go to the lowest level.

Thanks for your help!

#7

Updated by Julien Gueytat over 7 years ago

Julien Gueytat wrote:

Ok I began to play with DTrace. I think I can handle some debug myself but I need to understand the driver sources to choose DTrace probe properly. Could you help me to track the good functions?
Basically I think there is a trouble with the two hotspot I have with the same SSID. Otherwise I know that the rum_ratectl always go to the lowest level.

Thanks for your help!

http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/rum/

#9

Updated by Julien Gueytat over 7 years ago

BSD guys have provided in 2011 a patch for the rum driver. May be that correction is needed for us too and would by the meantime solve my bug.

http://freebsd.1045724.n5.nabble.com/Re-kern-149643-rum-device-not-sending-proper-beacon-frames-in-ap-mode-td4906084.html

#10

Updated by Anonymous over 7 years ago

The BSD patch attached seems to modify the lines after the 308 one of our rum source code:
http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/rum/rum.c#318

#11

Updated by Julien Gueytat over 7 years ago

Comparaison with BSD

BSD
Actual if_rum.c source file:
http://svnweb.freebsd.org/base/release/9.1.0/sys/dev/usb/wlan/if_rum.c?view=markup

rum_write_multi handles an offset to make request of 64 bytes at most.

Illumos
We seem to not have that 64 bytes rule.

#12

Updated by Julien Gueytat over 7 years ago

Anonyme wrote:

The BSD patch attached seems to modify the lines after the 308 one of our rum source code:
http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/rum/rum.c#318

http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/rum/rum.c#349 is the correct line. About rum_write_multi function.

#13

Updated by Julien Gueytat over 7 years ago

With some grep and cut in /var/adm/messages I can find at least two errors with ieee80211:

ieee80211_recv_mgmt: ignore beacon, unhandled id...
ieee80211_recv_mgmt: ignore prob_resp,unhandled id...

which corresponds to the line 966 in net80211_input.c:
http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/net80211/net80211_input.c#966

So... in the function ieee80211_recv_beacon I go many times in the default case. If not I could apparently get a rate.

case IEEE80211_ELEMID_RATES:
    scan.rates = frm;
    break;

scan.rates -> frm -> wh -> mp

mblk_t *mp seems to be the common point with the rum_write_multi function even if the relation is hidden for me somewhere in usb layer...

It seems that this BSD patch is what I need. :)

Also available in: Atom PDF