I've searched google and I can't find a solution to this problem :[

I'm running Debian. Simply did a minimal netinst with no desktop environment:

~#: uname -r

I have this product which uses the Ralink 5572 chipset. According to here it should be supported by the rt2800usb kernel module.

When I plug the stick in I see it come up in dmesg like so:

usb 1-2: new high-speed USB device number 5 using ehci-pci
usb 1-2: New USB device found, idVendor=2001, idProduct=3c1a
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-2: Product: 11n Adapter
usb 1-2: Manufacturer: Ralink
usb 1-2: SerialNumber: 1.0

It is also seen by lsusb.

And that's it. rt2800usb is not loaded (I have already run apt-get install firmware-ralink) On the wiki page I linked there appears to be extra stuff from dmesg. When I check iwconfig I don't see an interface for the device. I have also tried modprobe rt2800usb and the module loads no problem, but the interface still does not exist.

I can't find any errors anywhere so I can't figure out what is wrong. Any ideas what I can do?


The problem is that your kernel doesn't have a driver for this device.

The device's model and category are recognized because these are standard USB features. Seeing them correctly identified in the output of lsusb doesn't imply that you have a driver that would do anything useful with the device (and contrariwise you might have a working driver and yet not see the model identification in lsusb if lsusb was working on an old database of model names).

The rt2800usb driver, like any other USB driver, registers a list of USB devices (model and manufacturer identifiers) that it can handle. Your particular model was added in kernel 3.9.

It's possible that merely declaring the extra model will make it work. It's also possible that this model requires a workaround in the code somewhere but there doesn't appear to be any specific treatment of that particular model in the current version, so you might have a chance.

You can force the driver to believe that it can handle your device. Once the module is loaded, register a dynamic USB device ID:

echo 0x2001 0x3c1a >/sys/bus/usb/drivers/rt2800usb/new_id

To arrange for the module to be loaded automatically, you can declare an alias for it. I think that you'd still need to register the device ID. You should be able to do that with an install directive in /etc/modprobe.d. Create a file /etc/modprobe.d/rt2800usb-local.conf containing

alias usb:v2001p3c1Ad*dc*dsc*dp*ic*isc*ip*in* rt2800usb
install rt2800usb /sbin/modprobe --ignore-install rt2800usb && echo 0x2001 0x3c1a >/sys/bus/usb/drivers/rt2800usb/new_id
|improve this answer|||||
  • I'm accepting this not because it worked (haven't tried it yet) but because it's such a good answer. Thank you. My last resort was to compile a driver myself but I will try this first. – Cameron Ball Oct 8 '15 at 3:39
  • where did you get these: 0x2001 0x3c1a ? – Fernando Gabrieli Oct 22 '17 at 23:12
  • 1
    @FernandoGabrieli From the question: idVendor=2001, idProduct=3c1a. I know to write the vendor and product IDs into new_id because of the LWN article cited in the previous sentence. – Gilles 'SO- stop being evil' Oct 22 '17 at 23:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.