# Help with WUSB54GC (RT2070L)

## gr0x0rd

I just purchased a linksys WUSB54GC wireless-G usb adapter. Other threads show this as having an RT73 chip, but dmesg shows

```
[ 7021.445037] usb 1-2: new high speed USB device using ehci_hcd and address 2

[ 7021.581137] usb 1-2: configuration #1 chosen from 1 choice

[ 7021.582736] usb 1-2: New USB device found, idVendor=1737, idProduct=0077

[ 7021.582738] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[ 7021.582740] usb 1-2: Product: 802.11 g WLAN

[ 7021.582742] usb 1-2: Manufacturer: Ralink

[ 7021.582743] usb 1-2: SerialNumber: 1.0
```

A quick google and I found this thread showing the chip as the RT2070L, which is often listed with the RT3070. A check in my kernel config (2.6.28-r5) shows it's not supported natively yet, so a quick download of the RT3070USB(RT307x) linux driver from Ralink's website and a make later, I try to install the newly created module but...

```
sudo /sbin/insmod rt3070sta.ko

insmod: error inserting 'rt3070sta.ko': -1 Unknown symbol in module
```

What am I missing here? Thanks in advance!

----------

## streamkid

Have you found a solution?

I have a WUSB54GC sitting and I can try to see if and how it works.

----------

## NeddySeagoon

streamkid, gr0x0rd

 < >     Ralink 3070 wireless support (NEW) 

is the staging drivers in 2.6.30

Get the latest testing gentoo-sources and give it a try. You will also need all the other Ralink and wireless support options.

----------

## gr0x0rd

Neddy, I returned mine... got tired of fiddling with it. I've unmasked and built a 2.6.30 kernel, thought I haven't tried it yet, pretty happy with 2.6.28-r5... streamkid, this one's on you!

----------

## imbiea

I've purchased a WUSB54GC  (ver 3)

I've tried the the 2.6.30-r4 Kernel  

```

2.6.30-gentoo-r4 #2 Mon Jul 27 23:06:13 MDT 2009 i686 Intel(R) Celeron(R) M processor 1300MHz GenuineIntel GNU/Linux

```

And my lsmod looks like this:

```

Module                  Size  Used by

rt3070sta             428076  0 

rt73usb                22280  0 

rt2x00usb               8460  1 rt73usb

rt2x00lib              23660  2 rt73usb,rt2x00usb

```

lsusb:

```

Bus 002 Device 002: ID 0a81:0205 Chesen Electronics Corp. PS/2 Keyboard+Mouse Adapter

Bus 002 Device 001: ID 1d6b:0001  

Bus 003 Device 001: ID 1d6b:0001  

Bus 004 Device 001: ID 1d6b:0001  

[b]Bus 001 Device 004: ID 1737:0077  [/b]

Bus 001 Device 001: ID 1d6b:0002  

```

Which I find to be odd... i.e. it's not described..

However when I place in the wireless, my dmesg says:

```

[ 5502.000080] usb usb1: bus auto-suspend

[ 5502.000084] ehci_hcd 0000:00:1d.7: suspend root hub

[ 5504.938169] usb usb1: usb resume

[ 5504.938177] ehci_hcd 0000:00:1d.7: resume root hub

[ 5504.979057] hub 1-0:1.0: hub_resume

[ 5504.979084] ehci_hcd 0000:00:1d.7: GetStatus port 2 status 001803 POWER sig=j CSC CONNECT

[ 5504.979090] hub 1-0:1.0: port 2: status 0501 change 0001

[ 5505.080064] hub 1-0:1.0: state 7 ports 6 chg 0004 evt 0000

[ 5505.080081] hub 1-0:1.0: port 2, status 0501, change 0000, 480 Mb/s

[ 5505.131308] ehci_hcd 0000:00:1d.7: port 2 high speed

[ 5505.131319] ehci_hcd 0000:00:1d.7: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT

[ 5505.182065] usb 1-2: new high speed USB device using ehci_hcd and address 4

[ 5505.235290] ehci_hcd 0000:00:1d.7: port 2 high speed

[ 5505.235301] ehci_hcd 0000:00:1d.7: GetStatus port 2 status 001005 POWER sig=se0 PE CONNECT

[ 5505.309060] usb 1-2: default language 0x0409

[ 5505.315555] usb 1-2: New USB device found, idVendor=1737, idProduct=0077

[ 5505.315560] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[ 5505.315565] usb 1-2: Product: 802.11 g WLAN

[ 5505.315568] usb 1-2: Manufacturer: Ralink

[ 5505.315572] usb 1-2: SerialNumber: 1.0

[ 5505.315703] usb 1-2: uevent

[ 5505.315729] usb 1-2: usb_probe_device

[ 5505.315734] usb 1-2: configuration #1 chosen from 1 choice

[ 5505.316672] usb 1-2: adding 1-2:1.0 (config #1, interface 0)

[ 5505.318064] usb 1-2:1.0: uevent

[ 5505.318468] drivers/usb/core/inode.c: creating file '004'

```

But.... Alas... why I'm writing...

```

 iwconfig 

lo        no wireless extensions.

eth0      no wireless extensions.

sit0      no wireless extensions.

```

What am I missing... why won't any of the ra drivers load so that an iwconfig yields a configurable device??

----------

## NeddySeagoon

imbiea,

I expect it needs firmware in /lib/firmware buy dmesg usually has a message about firmware loading.

Mabe the config option does not turn on the firmware loader module in the kernel?

Note that you don't have a wlan0 yet.

You will find the firmware on the ralink website.

That lsusb does not show a name is not really an issue. Names are determined by looking up the Vendor and Device IDs in a database.

It just means that your device in not in the lsusb list of devices yet.

----------

## imbiea

```

~ $ ls -al /lib/firmware/

total 572

drwxr-xr-x 5 root root  4096 Jul 28 23:35 .

drwxr-xr-x 9 root root  4096 Jun 28 20:52 ..

drwxr-xr-x 2 root root  4096 Jul 27 20:44 edgeport

drwxr-xr-x 2 root root  4096 Jul 27 20:44 keyspan_pda

-rw-r--r-- 1 root root  8192 Jul 19 07:33 rt2561.bin

-rw-r--r-- 1 root root  8192 Jul 19 07:33 rt2561s.bin

-rw-r--r-- 1 root root  8192 Jul 19 07:33 rt2661.bin

-rw-r--r-- 1 root root  4096 Jul 28 23:35 rt2870.bin

-rw-r--r-- 1 root root  2048 Jul 27 17:50 rt73.bin

-rw-r--r-- 1 root root 40636 Mar 30 22:08 tiacx100

-rw-r--r-- 1 root root   936 Mar 30 22:08 tiacx100r0D

-rw-r--r-- 1 root root   964 Mar 30 22:08 tiacx100r11

-rw-r--r-- 1 root root   912 Mar 30 22:08 tiacx100r15

-rw-r--r-- 1 root root 42344 Mar 30 22:08 tiacx100usbc0D

-rw-r--r-- 1 root root 76568 Mar 30 22:08 tiacx111

-rw-r--r-- 1 root root 92836 Mar 30 22:08 tiacx111c16

-rw-r--r-- 1 root root 94192 Mar 30 22:08 tiacx111c17

-rw-r--r-- 1 root root 96336 Mar 30 22:08 tiacx111c19

-rw-r--r-- 1 root root  7204 Mar 30 22:08 tiacx111r16

-rw-r--r-- 1 root root  8952 Mar 30 22:08 tiacx111r17

drwxr-xr-x 2 root root  4096 Jul 27 20:44 vicam

-rw-r--r-- 1 root root 23554 Jul 27 20:44 whiteheat.fw

-rw-r--r-- 1 root root  5626 Jul 27 20:44 whiteheat_loader.fw

```

Other ideas...     :Confused: 

----------

## NeddySeagoon

imbiea,

grepping the kernel sources shows that none of the drivers holds your device vendopr and device IDs.

So none of the kernel drivers will bind with it. However, your chip seems to be a variant of the rt2870, so if you feel lucky, 

adding the device to that driver my be all thats needed.

If you are ready for some gentle kernel hacking, do the following as root

```
cd /usr/src/linux/drivers/staging/rt2870
```

 Using your favourate text editor, open the file 

```
rt2870.h 
```

Find the block of code that starts 

```
#define RT2870_USB_DEVICES      \

{
```

 Its actually one single line of code. The backslash means continued on the next line. 

Chose a line and duplicate it, so the first two lines which are

```
        {USB_DEVICE(0x148F,0x2770)}, /* Ralink */               \

        {USB_DEVICE(0x1737,0x0071)}, /* Linksys WUSB600N */     \
```

become

```
        {USB_DEVICE(0x148F,0x2770)}, /* Ralink */               \

        {USB_DEVICE(0x148F,0x2770)}, /* Ralink */               \

        {USB_DEVICE(0x1737,0x0071)}, /* Linksys WUSB600N */     \
```

Now change one of the copies to suit your device. *Quote:*   

>  idVendor=1737, idProduct=0077 

 

```
        {USB_DEVICE(0x148F,0x2770)}, /* Ralink */               \

        {USB_DEVICE(0x1737,0x0077)}, /* Linksys WUSB54GC */               \

        {USB_DEVICE(0x1737,0x0071)}, /* Linksys WUSB600N */     \
```

See the middle line above.

Now rebuild your kernel modules (you do have it configured as <M>?) with 

```
make modules

make modules_install

modprobe -r <module_name>

modprobe <module_name>
```

It may not work but it will now bind to your device and you will be further forward.

----------

## imbiea

Rock n' Roll!

I tried to do this with the rt2870 with no luck, but.... I did try it again with the 3070... Though, while in the 3070 directory in staging.... I modified the 2870 config??  wierd eh....  And... I'm here typing away right now while at the airport!!!!

I'll report back tomorrow on how well/if it works with wpa etc...  but for the moment....

```

ra0       RT2870 Wireless  ESSID:"........."  Nickname:"RT2870STA"

          Mode:Managed  Frequency=2.437 GHz  Access Point: 00:14:F1:AC:7F:71   

          Bit Rate=54 Mb/s   

          RTS thr:off   Fragment thr:off

          Encryption key:off

          Link Quality=83/100  Signal level:-59 dBm  Noise level:-83 dBm

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

```

Thanks!!

----------

## NeddySeagoon

imbiea,

Until the kernel is updated with what you did, you will need to go through this process at every kernel update.

Please file a bug at bugs.gentoo.org explaining what you did. The kernel team will bounce it upstream if its not already known.

You could also search the kernel.org bugs list and see it its known, then post your bug there, if its new. Only do one though.

Thats how open source works.

----------

## lindegur

```
emerge rt73-firmware
```

 to get the firmware in /lib/firmware.

The driver is included in the stable gentoo kernel sources. In .config have:

```
CONFIG_RT73USB=m
```

```
modprobe rt73usb
```

and then dmesg should show that it is ok.

If you have the same chip in your Linksys WUSB54GC as I do, then his should be enough to have the low level stuff running.

For the higher level stuff I simply use KNetworkManager and have an almost empty /etc/conf.d/net

----------

## cayenne

 *lindegur wrote:*   

> 
> 
> ```
> emerge rt73-firmware
> ```
> ...

 

I've got the wusb54gc version 3. 

I followed your advice, after finding out how to get the rt73-firmware emerged (putting the ~x86 in the package.keywords file).

I have the module in the kernel, and have it loaded, verified with lsmod.

I still cant' seem to get it to see the wireless unit.

I do fconfig and lwconfig...and I don't see it?

I had a version 1 unit of this model, and on another distro, I would see it as rausb0. I don't see that at all. I do see a sit0 which I can't associate with anything else...so maybe this is the linksys wireless? Regardless...I can't see to bring it up

I've looked at the aircrack-ng tools.....when I run airmon-ng, it doesn't show it at all...

Any other suggestions?

cayenne

----------

## NeddySeagoon

cayenne,

sit0 is an IPv6 over IPv4 tunnel end point. Its of no interest unless you want to use IPv6 and your ISP does not support it directly.

rausb device names are created by ralinks own drivers. The kernel drivers use wlan names.

----------

## cayenne

 *NeddySeagoon wrote:*   

> cayenne,
> 
> sit0 is an IPv6 over IPv4 tunnel end point. Its of no interest unless you want to use IPv6 and your ISP does not support it directly.
> 
> rausb device names are created by ralinks own drivers. The kernel drivers use wlan names.

 

Thanks for the reply.

Interesting.  Strange, for some reason, I can't get any computer I have so far, nor distros (gentoo or backtrack) to even 'see' the linksys wusb54gc.

I had a version 1 model, that worked fine...on a laptop I had. The laptop was old and started acting flaky for awhile...but, kept working with the v1 model as rausb0. It stopped working, I assumed (possibly wrongly) that it failed...and took it back to trade for a v3 I have now and posted about.

I'm not sure what happened there....and not sure now why the darned thing won't show up at all...nothing. I can see it on lsusb...but, wireless won't pick it up at all..won't acknowledge it is plugged in.

I'd heard you needed to activate them, ifconfig rausb0 up.  But it says there isn't a rausb0.

I'm starting to see other posts as I research this....that others are having the problems with linux not 'seeing' the unit at all when plugged in.

I'm running out of things to try at this point.

Anything that I need to do to get linux to just even 'see' the unit that you can think of?

Thanks in advance,

cayenne

----------

## NeddySeagoon

cayenne,

Lets start at the begging with your lsusb output, or the content of /proc/bus/usb/devices with your USB dongle plugged in.

----------

## lindegur

Unfortunately my wusb54gc is currently some 170km away from where I am. So I can not post you what I get when I plug it in. Next week I should be back  :Confused: 

First you have to make sure that the low level stuff works. With the high level stuff I had many difficulties until I discovered NetworkManager.

I guess, you see the driver when lsmod and dmesg tells you that the firmware has been downloaded. If so, then the low level stuff should be ok  :Laughing: 

The next step is

```
emerge wireless-tools
```

Then type iwconfig to see your interfaces and its names. Do you see something as:

```
# iwconfig

lo        no wireless extensions.

eth0      no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:""

          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated

          Tx-Power=20 dBm

          Retry min limit:7   RTS thr:off   Fragment thr=2352 B

          Encryption key:off

          Power Management:off

          Link Quality:0  Signal level:0  Noise level:0

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

```

If you don't see this, then you still have some low level problems.   :Embarassed: 

If you see this, then you will soon have the wusb54gc up and running.   :Laughing: 

Just an advise from my experience: Do not install too many network and driver things, it might confuse your computer (and maybe yourself). After knowing what to do, I have set up my 170km away computer last week with the wusb54gc and it was a straight forward task and it was easy  :Laughing:   However it took me a very long time until I knew what to do  :Sad: 

Do you use gnome or KDE  :Question: 

Is it a laptop that might work in all kinds of environments (This is why I use Knetworkmanager and WLAN)  :Question: 

----------

## darksky2000

ANy help would be welcomed. Thanks.

My output of /proc/bus/usb/devices

-----------------------------

bt usb # cat devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2

B:  Alloc=  0/900 us ( 0%), #Int=  1, #Iso=  0

D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1

P:  Vendor=0000 ProdID=0000 Rev= 2.06

S:  Manufacturer=Linux 2.6.21.5 uhci_hcd

S:  Product=UHCI Host Controller

S:  SerialNumber=0000:00:07.2

C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA

I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0

D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1

P:  Vendor=1737 ProdID=0077 Rev= 1.01

S:  Manufacturer=Ralink

S:  Product=802.11 g WLAN

S:  SerialNumber=1.0

C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=450mA

I:* If#= 0 Alt= 0 #EPs= 7 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)

E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

E:  Ad=03(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

E:  Ad=05(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

E:  Ad=06(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  3 Spd=12  MxCh= 7

D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1

P:  Vendor=0e0f ProdID=0002 Rev= 1.00

S:  Product=VMware Virtual USB Hub

C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA

I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms

-----------------------------

----------

## NeddySeagoon

darksky2000,

Thats a Ralink chipset, support is in the kernel.

Is this page enough of a pointer or do you need more detail ?

----------

## darksky2000

I have tried a bit of fixes....and still nothing. The adapter does not show up with ifconfig or iwconfig. The above file is the only trace that the machine even knows its there.

----------

## imbiea

Per Neddy:

https://bugs.gentoo.org/show_bug.cgi?id=290077

My wireless is still working like a champ with Neddy's suggestion of the module hack.  But when I tried the rt2800usb drivers that contain the 1737:0077 device.. it see's the device (i.e. a iwconfig yields a device!!) but I can't get it to bind/associate to ANYTHING.  So I go back to my hacked kernel (2.6.30-r6) with staging drivers 

 /usr/src/linux-2.6.30-gentoo-r6/drivers/staging/rt3070/rt2870.h

and make the suggestion as Neddy said... it works.  Though.. I can't get wpa working?

The bug 'might' address this as well, as I've mentioned that the 2800usb driver doesn't appear to work at all.

----------

