linksys WSusb600N fails to load at boot, until usb cable plugged out and in again

I use WSUSB600 to connect to internet.

When everything is correct on startup opensuse (wireless working) I see the following in command line.

/usr/bin/lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 004: ID 1737:0079 Linksys WUSB600N v2 Dual-Band Wireless-N Network Adapter [Ralink RT3572]

The problem is: after several boots (I don’t see a pattern) the wireless is down because wusb600N is no longer listed in the usb devices:

/usr/bin/lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver

As soon as this fault occurred, every boot that follows fails to load the wusb600N. To fix it, I have to plug out and plugin the usb device again. Afterwards, it works until several boots later…

When this fault occurrs I also see some error messages during startup logs, but I didn’t find them to copy paste them here. /Var/log/boot.msg is empty…

Oh and the problem occurs on different usb ports on the pc, so it’s not related to the usb port.

On 01/02/2012 06:36 AM, suskewiet wrote:
>
> Oh and the problem occurs on different usb ports on the pc, so it’s not
> related to the usb port.

Perhaps your hardware works when cold, but fails when it gets warm. The USB scan
happens at a very low level in the kernel.

The logs you need to find and post are in the dmesg output, and are also in
/var/log/messages. With systemd, boot.msg is no longer valid.

Thanks for the reply lwfinger. I don’t think it fails because hardware is too hot, since it seems to occur most when leaving my desktop switched off for multiple hours/days, and than power it on.

I looked for the logging you requested, below is what I believe the relevant part:

    1.807048] usb 4-1: new full speed USB device number 2 using uhci_hcd
    1.920022] usb 4-1: device descriptor read/64, error -71
    1.924784] EXT4-fs (sda2): re-mounted. Opts: acl,user_xattr
    2.135036] usb 4-1: device descriptor read/64, error -71
    2.338035] usb 4-1: new full speed USB device number 3 using uhci_hcd
    2.452033] usb 4-1: device descriptor read/64, error -71
    2.562083] systemd[1]: systemd 37 running in system mode. (+PAM +LIBWRAP +AUDIT +SELINUX +SYSVINIT +LIBCRYPTSETUP; suse)
    2.667728] usb 4-1: device descriptor read/64, error -71
    2.864316] systemd[1]: Set hostname to <suzi-wan.site>.
    2.871059] usb 4-1: new full speed USB device number 4 using uhci_hcd
    3.281031] usb 4-1: device not accepting address 4, error -71
    3.383033] usb 4-1: new full speed USB device number 5 using uhci_hcd
    3.792034] usb 4-1: device not accepting address 5, error -71
    3.792243] hub 4-0:1.0: unable to enumerate USB device on port 1

On 01/04/2012 01:06 PM, suskewiet wrote:
>
> Thanks for the reply lwfinger. I don’t think it fails because hardware
> is too hot, since it seems to occur most when leaving my desktop
> switched off for multiple hours/days, and than power it on.
>
> I looked for the logging you requested, below is what I believe the
> relevant part:
>
>
> Code:
> --------------------
> 1.807048] usb 4-1: new full speed USB device number 2 using uhci_hcd
> 1.920022] usb 4-1: device descriptor read/64, error -71
> 1.924784] EXT4-fs (sda2): re-mounted. Opts: acl,user_xattr
> 2.135036] usb 4-1: device descriptor read/64, error -71
> 2.338035] usb 4-1: new full speed USB device number 3 using uhci_hcd
> 2.452033] usb 4-1: device descriptor read/64, error -71
> 2.562083] systemd[1]: systemd 37 running in system mode. (+PAM +LIBWRAP +AUDIT +SELINUX +SYSVINIT +LIBCRYPTSETUP; suse)
> 2.667728] usb 4-1: device descriptor read/64, error -71
> 2.864316] systemd[1]: Set hostname to<suzi-wan.site>.
> 2.871059] usb 4-1: new full speed USB device number 4 using uhci_hcd
> 3.281031] usb 4-1: device not accepting address 4, error -71
> 3.383033] usb 4-1: new full speed USB device number 5 using uhci_hcd
> 3.792034] usb 4-1: device not accepting address 5, error -71
> 3.792243] hub 4-0:1.0: unable to enumerate USB device on port 1

Your USB hardware is generating errors when the devices are being scanned
(enumerated). Once this fails, the attached devices are not seen. Unless you can
say that this is caused by a kernel update, it appears that your hardware is
having problems.

I don’t think it’s the hardware, it works good on windows. On linux as well if I plug the cable out and in again. So I believe it is a linux issue. Don’t know if I did a kernel update. I do regular updates of the opensuse update repo and packman repo. If there was a kernel update in there, I installed it…

I found this on usb 1-4: device descriptor read/64, error -71 by Guy Rutenberg

The solution that worked for me was runnig as root

echo Y > /sys/module/usbcore/parameters/old_scheme_first

The general idea behind the solution is that there are two way to enumerate USB devices according to the standard. The method that is currently used by default in the usbcore module is similar to the one found in Windows. Apparently There are devices, and the Sansa Clip is among them, that require the other method to function properly. See Linux USB FAQ for more info.

My question: is there a reason why I should not and the Y to old_scheme_first? Will it still run usb2? Can this have a negative effect on other usb devices? I have not tested yet if this will work.

Hm, Changing the usbcore parameter to ‘Y’ doesn’t seem to help. I assume this is caused by the wusb600n using uhci_hcd instead of usbcore? Is there a parameter I can change in /sys/modules/uhci_hcd that will use an old scheme? I only have an ignore_oc file under /sys/modules/uhci_hcd/parameters…

Ok, found some other threads on the internet where uhci_hcd was used as well and they solved their issue by changing

/sys/module/usbcore/parameters/autosuspend

changing the value ‘2’ to ‘-1’.

My problem is, after a reboot, this file is overwritten by the system and has again value 2 instead of -1. Also, the old_scheme_first seems to be overwritten as well. Maybe that is why this solution didn’t work earlier… How can I make the changes in these files permanent?

Ok, I found out that autosuspend and old scheme can be set by using grub parameters on boot: usbcore.autosuspend=-1 usbcore.old_scheme_first=Y.

The down side is that it still doesn’t work. After random cold boot (every 3-4 times), the wusb600n doesn’t get loaded.

I found something else on the net: Getting the Linksys WUSB600N v2 USB Stick to work in Linux

It recommends to use the rt3572 driver for the wusb600n. I also found a post on the opensuse forum saying to use that driver. The problem is, the rt3572 driver is not found in Index of /repositories/driver:/wireless for opensuse 12.1:(.

I then went to the ralink site to download it from there directly, but the zip contains a single dpo file. And I don’t have a clue on what to do with a dpo file (googling didn’t help much). Any ideas how to install the rt3572 driver? This wireless problem is very very annoying:(.

Another idea:

usb 4-1: new full speed USB device number 4 using uhci_hcd

the error says uhci_hcd, and if I understand correctly this means USB-1.0. But if no error occurs, the Wusb600 is loaded with ehci_hcd which should be usb-2.0.

So maybe I have to add my device id to the path below??

/sys/module/ehci_hcd/drivers/pci:ehci_hcd/new_id

Oh and it seems the rt3572 is for 2.6 kernel so that will probably not work…