Ralink 2070/3070 USB dongle - no scan result

Hi.

Just purchased this USB wifi NIC. installs and work perfect under Win XP, how ever I can’t seem to get working on my opensuse 11.3

Network manager did not recognize the NIC out of the box (still doesn’t) so I started trawling the forum and I’ve read both wireless ‘stickys’.

When out of the box did not work I installed the rt3070sta-kmp-desktop - RT3070 Wireless Lan Linux Driver from the repos.

My Nic and kernel version

lsusb
Bus 001 Device 004: ID 148f:3370 Ralink Technology, Corp.

uname -a
XXXXXXXX 2.6.34.7-0.5-desktop #1 SMP PREEMPT 2010-10-25 08:40:12 +0200 x86_64 x86_64 x86_64 GNU/Linux

I’d study this post to get inspired on how to install the 3070 driver.

I did

sudo vi /etc/modprobe.d/51-rt3070sta.conf
install rt3070sta modprobe --ignore-install rt3070sta ; /bin/echo "148f 3370" > /sys/bus/usb/drivers/rt3070/new_id
sudo vi /etc/modprobe.d/50-blacklist.conf
# Blacklist in-kernel drivers rt2800pci/rt2800usb.
# If you want to revert to preferring rt2800pci/rt2800usb
# comment the first two and uncomment the last two lines.

blacklist rt2800pci
blacklist rt2800usb
blacklist rt2860sta
blacklist rt2870sta
sudo vi /etc/sysconfig/kernel
MODULES_LOADED_ON_BOOT="rt3070sta"

And reboot

Then

dmesg |grep rt3
    6.175298] usbcore: registered new interface driver rt3070
dmesg
  374.041043] usb 1-6: new high speed USB device using ehci_hcd and address 6
  374.172039] usb 1-6: New USB device found, idVendor=148f, idProduct=3370
  374.172045] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  374.172049] usb 1-6: Product: 802.11 n WLAN
  374.172052] usb 1-6: Manufacturer: Ralink
  374.172055] usb 1-6: SerialNumber: 1.0
sudo /usr/sbin/iwconfig 
root's password:
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     Ralink STA  ESSID:"11n-AP"  Nickname:"RT2870STA"
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   
          Bit Rate:1 Mb/s   
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Link Quality=10/100  Signal level:0 dBm  Noise level:-85 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
sudo /usr/sbin/iwlist scan
lo        Interface doesn't support scanning.

eth0      Interface doesn't support scanning.

wlan0     No scan results

And I’m stucked - as mentioned the NIC does not appear in YAST Network Manager.

What am I missing? Any help would be highly appreciated

/Peter

I think at this point you just need to configure it. (although I’m not sure how well the 3070 chipset is supported)

In yast, under network settings select “user controlled with NetworkManager”.
Make sure the wired nic is set to “activate device on cable connection”.

Then reboot. NetworkManager should show up and you should just be able to select your network and add the security key in.

Hi.

The trick about setting the wired nic to activate on cable connection, had some effect.

Now the wifi nic lids up (blue) during boot, but at the login the light turns off, and stay off. Under Windows the blue light was flashing when the nic was operating. I do not see such activity under Linux.

How ever the network manager will notice if the wifi nic is removed (no wireless options) and notice when the wifi nic is reinserted (wireless options available), so light or no light, I’m uncertain if lights is a valid indicator for nic operation under Linux.

I know of several wifi networks in my sorrundings that do brodcast their SSID, but the scan yields not result.

/Peter

Now the nic is working.

I can see various networks and can connect to the appropriate one.

No changes what so ever to my OpenSuse system since the above posts.

Similar experience has apparently been seen before like stated within this post.

The only thing that has happened since the above posting and now was the PC being booted to the XP partition, and then after a while booted back to the OpenSuse partition.

If wifi nic operating is not persistent I’ll be back.

/Peter

On 11/20/2010 10:36 AM, peternielsen5 wrote:
>
> Now the nic is working.
>
> I can see various networks and can connect to the appropriate one.
>
> No changes what so ever to my OpenSuse system since the above posts.
>
> Similar experience has apparently been seen before like stated within
> ‘this post’ (http://tinyurl.com/2bh2xn6).
>
> The only thing that has happened since the above posting and now was
> the PC being booted to the XP partition, and then after a while booted
> back to the OpenSuse partition.
>
> If wifi nic operating is not persistent I’ll be back.

Windows does some awful things to network devices. Sometimes it helps to look
for BIOS settings for things like Wake on Lan and change them.

Larry, I don’t know if you saw his original post or not but it seems like his NIC’s usb id isn’t in the driver (I checked in the driver source just to make sure and didn’t see it). Maybe he could test it for you so it can be added.

On 11/20/2010 12:06 PM, rodhuffaker wrote:
>
> Larry, I don’t know if you saw his original post or not but it seems
> like his NIC’s usb id isn’t in the driver (I checked in the driver
> source just to make sure and didn’t see it). Maybe he could test it for
> you so it can be added.

I don’t know where that driver comes from. I could not find it in the kernel. If
it is there, please point me in the right direction.

Ok, I see the driver in the opensuse build service.

software.opensuse.org: Search Results

Akoellh is listed as one of the maintainers. I guess he would have to add it?

On 11/20/2010 03:06 PM, rodhuffaker wrote:
>
> Ok, I see the driver in the opensuse build service.
>
> ‘software.opensuse.org: Search Results’ (http://tinyurl.com/23llgty)
>
> Akoellh is listed as one of the maintainers. I guess he would have to
> add it?

Yes, those are out-of-kernel drivers.

All rigthy then…

Wifi nic operation is not persistent.

To have nic working I need to boot into Win XP, then reboot (choose restart option from XP) into OpenSuse.

Now when having booted OpenSuse and the nic is operative, and I choose to restart the system, the nic will be operative. However if I choose to power down the system and then power on the nic will not be operative, and I have to do the XP boot in order to trick nic to operate.

I’ve disabled wake on LAN and upgraded my BIOS, but that did not make any difference.

/Peter

Okay, I’m not into how drivers make it into the kernel, so my next question may seem lame - but will we see driver support for the 3070 chipset?

And if that support already is present, then please explain to me how to install the supported and working driver.

I’m aware of the driver section on ralink.com , but I’m not skilled in building/ compiling stuff, so that seems to be a dead end for me.

I’m most greatful for your support so far - thanks

/Peter

On 11/20/2010 06:06 PM, peternielsen5 wrote:
>
> Okay, I’m not into how drivers make it into the kernel, so my next
> question may seem lame - but will we see driver support for the 3070
> chipset?

There are two places that new wireless drivers are introduced. The first is in
the drivers/staging file tree, hereafter called staging. The second is in the
drivers/net/wireless file tree, called wireless. Drivers in staging do not have
to meet the rigid quality standards of those in wireless, and are flagged as
being of unknown quality when they are started. The staging drivers are expected
to be improved to the point that they can go into wireless. If they sit for a
long (no definite numerical value) time without improvement, they will be
deleted. Insertion/removal are at the discretion of the staging maintainer. One
other requirement for drivers in the wireless tree is that their MAC (Media
Access Control) layer must be either in hardware, or they must utilize the
mac80211 driver already in the kernel.

From the time of acceptance of a new driver into the kernel, there will be a
delay of up to roughly 6 months before it makes it into the mainline kernel.
During this time, it will be in linux-next for one cycle (2.6.N => 2.6.N+1),
then be in the RC phase of a new version.

> And if that support already is present, then please explain to me how
> to install the supported and working driver.

For your device, there is no support in the current kernel. If there were, you
would only need to install a kernel of the correct version.

> I’m aware of the driver section on ‘ralink.com
> (http://www.ralink.com.tw/support.php) , but I’m not skilled in
> building/ compiling stuff, so that seems to be a dead end for me.
>
> I’m most greatful for your support so far - thanks

If you could find someone to take the vendor driver that is in the Packman repo,
rework it to meet minimal kernel standards, and submit it to staging, then you
might get it into a standard kernel in 6 months to a year. I could do it, but
I’m already up to my ears in aligators. I have two drivers in staging that need
to be converted to mac80211, and I am about ready to submit a new driver to
wireless. To give you an idea of what it takes, I started work on the driver
called r8712u, which drives the D-Link DW-130, in May. I worked full time on it
until late August when it was submitted to staging. It first appeared in
2.6.36-RC1 in November and will be in the stable kernel in late January.

Hi Larry,

I do not expect you to fix all the worlds wifi driver issue. :wink: But thanks anyway for your concern and comments. It was enlightening

I think the vendor should be responsible for providing usable driver for their product. Maybe Ralink does that, but at least not in a very user friendly ‘package’ for the not so Linux knowledgeably.

Now - I’ve managed to work around what ever the problem might be, by first boot into Windows to activate the dongle. For now that will do.

If I get the time I may want to either try to learn how to compile ‘my own driver’ or now that I do know the nic works play at bit more around with the kernel provide drives vs. the ones from the staging repos.

One last thing though before I rest my case - if I want to learn how to build/compile the driver on my own, could you maybe point me to where I can learn about the tools and technique?

/Peter

ID added to rt3070sta- and rt28x0-staging packages in driver:wireless.

The latter are backports of in-kernel staging drivers from 2.6.36 (atm) to 11.2/11.3 and support rt3070-chipsets (combined drivers rt2870+rt3070 and rt2860+rt3090 respectively).

The first one is the “vendor” driver for rt3070-chipsets, parts of that driver were used to create the in-kernel staging drivers, so this one will certainly not go into mainline as it already was added there.

Pushing this ID upstream is not intended (at least by me) as this thread does not really convince me enough to say “Yep, worth the effort” although the problems don’t seem to be driver related and look a lot more like a crappy BIOS implementation (but count me out in trying to help with this issue here, not my cup of tea).

On 11/21/2010 10:06 AM, Akoellh wrote:
>
> Pushing this ID upstream is not intended (at least by me) as this
> thread does not really convince me enough to say “Yep, worth the effort”
> although the problems don’t seem to be driver related and look a lot
> more like a crappy BIOS implementation (but count me out in trying to
> help with this issue here, not my cup of tea).

Thanks for putting this driver in. Did you get the new PCI ID (148f:3370) included?

The business of having to boot Windows first is likely one of the following: (1)
the result of an incorrect BIOS option, (2) a faulty BIOS, or (3) a Linux driver
that is not initializing the device properly. If no BIOS option exists, then you
might try updating to a newer BIOS, although I do not generally recommend that
step. If the problem is (3), the workaround is known.

cat rt28x0-staging-2.6.36-extra_devices.diff 
--- rt2860/usb_main_dev.c.orig	2010-09-27 11:30:59.000000000 +0200
+++ rt2860/usb_main_dev.c	2010-11-20 20:45:26.000000000 +0100
@@ -113,6 +113,7 @@
 	{USB_DEVICE(0x148F, 0x3070)},	/* Ralink 3070 */
 	{USB_DEVICE(0x148F, 0x3071)},	/* Ralink 3071 */
 	{USB_DEVICE(0x148F, 0x3072)},	/* Ralink 3072 */
+	{USB_DEVICE(0x148F, 0x3370)},	/* Ralink 3370 */
 	{USB_DEVICE(0x0DB0, 0x3820)},	/* Ralink 3070 */
 	{USB_DEVICE(0x0DB0, 0x871C)},	/* Ralink 3070 */
 	{USB_DEVICE(0x0DB0, 0x822C)},	/* Ralink 3070 */

and

 cat rt3070sta-2.3.0.4-extra_devices.patch 
--- common/rtusb_dev_id.c.orig	2010-11-20 17:48:56.000000000 +0100
+++ common/rtusb_dev_id.c	2010-11-20 17:50:47.000000000 +0100
@@ -42,6 +42,7 @@
 	{USB_DEVICE(0x148F,0x3070)}, /* Ralink 3070 */
 	{USB_DEVICE(0x148F,0x3071)}, /* Ralink 3071 */
 	{USB_DEVICE(0x148F,0x3072)}, /* Ralink 3072 */
+	{USB_DEVICE(0x148F,0x3370)}, /* Ralink 3370 */
 	{USB_DEVICE(0x0DB0,0x3820)}, /* Ralink 3070 */
 	{USB_DEVICE(0x0DB0,0x871C)}, /* Ralink 3070 */
 	{USB_DEVICE(0x0DB0,0x822C)}, /* Ralink 3070 */

However, this “rt3070sta” package is -at least now- only existing for “historical reasons”.

I published it in driver:wireless when the staging drivers weren’t present yet or didn’t include support for rt3070-chipsets.

As I didn’t backport the “rt28x0-staging” drivers to openSUSE 11.1, I kept the vendor driver and it also got included for 11.2/11.3 repositories. I intend to delete that package when openSUSE 11.1 will be out of support (end of this year/beginning of next year).

BTW:

Talking about backported drivers from mainline, there are quite a few more (all of them are from 2.6.36 atm).

rtl8712u (you know that one, I suppose ;-))

rtl8192su

rtl8192u

rtl8192e

rtl8187se (OK, that one was only playing around)

and last but not least

compat-wireless (from 2.6.36 stable)

with some “extras”, including brcm80211, wlan-ng, carl9170, ath6k, winbond (w35usb) from 2.6.37/linux-next added to the standard package.

All of those drivers are available for openSUSE 11.2 (2.6.31) and 11.3 (2.6.34) and are most likely a better “first shot” than having some (more or less unexperienced) user compile his own custom (vanilla) kernel or updating from Kernel:HEAD repo.

Some of them might not work, but still having RPM packages will make both installing and uninstaling easier.

On 11/21/2010 12:06 PM, Akoellh wrote:
>
> Talking about backported drivers from mainline, there are quite a few
> more (all of them are from 2.6.36 atm).
>
> rtl8712u (you know that one, I suppose ;-))

Very well. The conversion of that driver to use mac80211 is underway.

> rtl8187se (OK, that one was only playing around)

The conversion to a mac80211 version is nearly done. I got most of the way and
Realtek reports that it is now working, but not stable.
>
> and last but not least
>
> compat-wireless (from 2.6.36 stable)
>
> with some “extras”, including brcm80211, wlan-ng, carl9170, ath6k,
> winbond (w35usb) from 2.6.37/linux-next added to the standard package.
>
> All of those drivers are available for openSUSE 11.2 (2.6.31) and 11.3
> (2.6.34) and are most likely a better “first shot” than having some
> (more or less unexperienced) user compile his own custom (vanilla)
> kernel or updating from Kernel:HEAD repo.

I really appreciate your effots.

> Some of them might not work, but still having RPM packages will make
> both installing and uninstaling easier.

Agreed.

Thank you all for your efforts, and for including the ID! Highly appreciated :good:

I’ve removed my patch and installed the updated rt28x0-staging drivers, as I can understand the rt3070sta package will die along with OpenSuse 11.1.

This driver install fixed the windows boot work around since the nic now no longer operates upon reboot. I guess that rules out bios stuff for now.

Instead I get an at-spi-registryd-wrapper.desktop at login and the system loops for 3-4 minutes.

dmesg shows a lot of entries like this


....
  580.067149] #
  580.172038] #
  580.277054] #
  580.282082] RTUSB_VendorRequest failed(-110),TxFlags=0x0, ReqType=IN, Req=0x7, Index=0x438
  580.382069] #
  580.487088] #
  580.592099] #
  580.697116] #
  580.802131] #
  580.907144] #
  581.012158] #
  581.117052] #
  581.222066] #
  581.327081] #
  581.332110] RTUSB_VendorRequest failed(-110),TxFlags=0x0, ReqType=IN, Req=0x7, Index=0x101c
  581.432094] #
  581.537111] #
  581.642126] #
....

When unplugging the nic I get in dmesg


...
  435.031785] device disconnected
  435.031789] device disconnected
  435.031792] device disconnected
  435.031795] device disconnected
  435.031798] device disconnected
  435.031801] device disconnected
  435.031805] ERROR! H2M_MAILBOX still hold by MCU. command fail
  435.087388] ---> RTMPFreeTxRxRingMemory
  435.087421] <--- RTMPFreeTxRxRingMemory
  435.094255]  RTUSB disconnect successfully

And when reinserting nic
  538.970024] usb 1-6: new high speed USB device using ehci_hcd and address 7
  539.100995] usb 1-6: New USB device found, idVendor=148f, idProduct=3370
  539.101000] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  539.101014] usb 1-6: Product: 802.11 n WLAN
  539.101017] usb 1-6: Manufacturer: Ralink
  539.101021] usb 1-6: SerialNumber: 1.0
  539.103117] === pAd = ffffc900015b5000, size = 502256 ===
  539.103122] <-- RTMPAllocAdapterBlock, Status=0
  539.140324] usb 1-6: firmware: requesting rt2870.bin
  539.411283] <-- RTMPAllocTxRxRingMemory, Status=0
  539.412785] -->RTUSBVenderReset
  539.412909] <--RTUSBVenderReset
  539.692201] 1. Phy Mode = 0
  539.692204] 2. Phy Mode = 0
  539.692208] NVM is Efuse and its size =2d[2d0-2fc] 
  539.764213] 3. Phy Mode = 0
  539.864102] #
  539.970117] #
  540.074130] #
  540.178146] #
  540.282160] #
  540.386055] #
  540.490065] #
  540.594205] #
  540.698095] #
  540.802110] #
  540.906255] #
  540.911277] RTUSB_VendorRequest failed(-110),TxFlags=0x0, ReqType=IN, Req=0x7, Index=0x1718
  541.011145] #
  541.116538] #
... 
and a lot of those failed request. And no wireless network in network manager.

I suspect the flood of failed request to provoke the at-spi-thing at login.

/Peter

  1. Removed the ID from that package again

  2. No more experimental patches with new IDs for that package, it will stay “as is” and only get patches needed for successful build with older kernels.

BTW:

Latest “fun” with the ralink drivers (at least latest I found out), they changed the size of the firmware images for USB-devices (8K now, 4k before and 4K is the size of images in linux-firmware git for all USB firmwares) for all of their vendor drivers.

The confusion of many different “drivers” (at least 3 for USB and 4 for PCI!) and this whole messing around with dozens of different firmware images is the main reason, I wouldn’t touch this junk with a “ten foot pole”, no matter how linux friendly ralink looks on its homepage.