DMESG Usb Port Spam using FIIO K7 DAC

On every startup during init, I get hit with a lot of dmesg errors in tty, the errors correspond to whichever usb port I have my FIIO K7 Dac plugged into.

[  212.951732] usb 7-1: device descriptor read/64, error -71
[  213.791707] usb 7-1: device descriptor read/64, error -71
[  214.415652] usb 7-1: new full-speed USB device number 85 using xhci_hcd
[  214.535049] usb usb7-port1: attempt power cycle
[  215.119619] usb 7-1: new full-speed USB device number 86 using xhci_hcd
[  215.119720] usb 7-1: Device not responding to setup address.
[  215.324674] usb 7-1: Device not responding to setup address.
[  215.532607] usb 7-1: device not accepting address 86, error -71
[  215.532672] usb 7-1: WARN: invalid context state for evaluate context command.
[  216.055605] usb 7-1: new full-speed USB device number 87 using xhci_hcd
[  216.055733] usb 7-1: Device not responding to setup address.
[  216.260825] usb 7-1: Device not responding to setup address.
[  216.468850] usb 7-1: device not accepting address 87, error -71
[  216.468917] usb 7-1: WARN: invalid context state for evaluate context command.
[  216.468945] usb usb7-port1: unable to enumerate USB device
[  216.684565] usb 7-1: new full-speed USB device number 88 using xhci_hcd
[  217.007597] usb 7-1: device descriptor read/64, error -71
[  217.847556] usb 7-1: device descriptor read/64, error -71
[  218.471783] usb 7-1: new full-speed USB device number 89 using xhci_hcd
[  218.591593] usb usb7-port1: attempt power cycle
[  219.175451] usb 7-1: new full-speed USB device number 90 using xhci_hcd
[  219.175550] usb 7-1: Device not responding to setup address.
[  219.380474] usb 7-1: Device not responding to setup address.
[  219.588423] usb 7-1: device not accepting address 90, error -71
[  219.588470] usb 7-1: WARN: invalid context state for evaluate context command.
[  220.111410] usb 7-1: new full-speed USB device number 91 using xhci_hcd
[  220.111499] usb 7-1: Device not responding to setup address.
[  220.316471] usb 7-1: Device not responding to setup address.
[  220.524389] usb 7-1: device not accepting address 91, error -71

Is there any way (i.e. a udev rule) that I can mute this / omit this from dmesg? Following the vendor and device ID?

I am fairly certain it’s not a USB port issue. Perhaps it’s the cable, but alternatively I’m assuming it’s just a result of a lack of support for that specific DAC.

It functions as expected other than the dmesg spam. Hence why I’m looking to potentially just hide it to prevent log pollution.

I don’t know whether it’s possible or how, but that looks severe. If I had that I would try replacing the cable before anything else. Also, ensure that device is receiving adequate power; perhaps try an alternative power source. If those two don’t alleviate these messages, try it on a different Linux computer and see whether you get these there as well.

Tried switching the cable to a completely new one… No luck. Issue persists. Will try on another linux machine as well. Just setting one up.

Worth noting, it does not occur if I turn my DAC on AFTER the computer has been fully started up.

If my DAC is on however, before I’ve started my computer up, then the log spam happens, and continues until I turn my DAC off & on again.

I will wait for your report on the additional test.

Sometimes USB devices with their own independent power supply don’t like to have their USB address changed after their first connection. I suspect this is why it’s fine when turned on second. Linux expects that power-cycling the port will reset the device, but this is not the case.

I found a stack exchange post here that details how to silence the dmesg warning, but it’s unclear to me if this will disable the entire port, or just the misbehaving endpoint.

The rule seems to cause a reduction in the logging, however it’s not consistent as some boots it still spams. In addition to a new message about the device not accepting an address

[  +0.207960] usb 7-2: device not accepting address 28, error -71
[  +0.000078] usb 7-2: WARN: invalid context state for evaluate context command.
[  +0.522913] usb 7-2: new full-speed USB device number 29 using xhci_hcd
[  +0.000049] usb 7-2: Device not responding to setup address.
[  +0.205003] usb 7-2: Device not responding to setup address.
[  +0.208924] usb 7-2: device not accepting address 29, error -71
[  +0.000042] usb 7-2: WARN: invalid context state for evaluate context command.
[  +0.000038] usb usb7-port2: unable to enumerate USB device
[  +0.218920] usb 7-2: new full-speed USB device number 30 using xhci_hcd
[  +0.327035] usb 7-2: device descriptor read/64, error -71
[  +0.840002] usb 7-2: device descriptor read/64, error -71
[  +0.623997] usb 7-2: new full-speed USB device number 31 using xhci_hcd
[  +0.119042] usb usb7-port2: attempt power cycle
[  +0.584921] usb 7-2: new full-speed USB device number 32 using xhci_hcd
[  +0.000084] usb 7-2: Device not responding to setup address.
[  +0.205967] usb 7-2: Device not responding to setup address.
[  +0.206957] usb 7-2: device not accepting address 32, error -71

I was mistaken in thinking it didn’t affect headphones, as it does actually cause them to be completely disabled.

It appears that the following has resolved the issue for me.

  boot.initrd.services.udev.rules = ''
    ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2972", ATTRS{idProduct}=="0047", TEST=="power/control", ATTR{power/control}="on"
  '';

This initrd udev rule for powering on the usb port / not power cycling it seems to have worked. I haven’t seen a log in regards to it for two days now so assuming it has fixed it.

edit: of course the moment I post this, the issue comes back in full force!

1 Like

I haven’t been able to find an easy fix yet past just turning my headphones on after the computer has already started up, or turning them off when I restart.