You are not logged in.

#1 2014-03-01 02:09:16

EvanPurkhiser
Member
From: San Francisco
Registered: 2010-08-17
Posts: 225
Website

USB Hub bandwidth management

Hey guys,

I have USB 2.0 hub that's connected over a 25ft extension.

I have the following plugged into it:

  • USB Keyboard

  • USB Mouse

  • USB Headset

  • Android phone

I just recently bought some DJ equipment that has a built in soundcard for recording over USB. When plugged into the hub the device is identified just fine, but trying to get audio from it doesn't work.

Looking at dmesg I see

[  987.357386] cannot submit urb 0, error -28: not enough bandwidth
...

multiple times.

If I unplug everything and plug in the DJ equipment first and then USB audio followed by mouse, keyboard, phone. It /appears/ to work (I can see the volume bar in pavucontrol). But when recording audio it's very stuttered and generally bad sounding.

The device works fine plugged in with everything else on Windows 8. Is there a way I can somehow adjust bandwidth requirements? Or alternatively, disable one of the devices (without having to unplug it) on the fly (I don't need my headset working while DJing)?

Thanks

Offline

#2 2014-03-01 02:45:26

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,797

Re: USB Hub bandwidth management

https://en.wikipedia.org/wiki/USB#Cabling
25 feet.  Really?

For those not in the third world -- 7.6 m


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#3 2014-03-01 03:27:18

EvanPurkhiser
Member
From: San Francisco
Registered: 2010-08-17
Posts: 225
Website

Re: USB Hub bandwidth management

Yeah, I realize it is out of spec, I looked back at what I bought and it's actually worse, a whole 10 meters, two times that of the spec!

Here's the output of `lsusb -t`

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 4: Dev 45, If 0, Class=Hub, Driver=hub/7p, 480M
                |__ Port 1: Dev 46, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
                |__ Port 1: Dev 46, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
                |__ Port 2: Dev 51, If 0, Class=Human Interface Device, Driver=usbhid, 12M
                |__ Port 2: Dev 51, If 1, Class=Human Interface Device, Driver=usbhid, 12M
                |__ Port 4: Dev 50, If 0, Class=Vendor Specific Class, Driver=, 480M
                |__ Port 4: Dev 50, If 1, Class=Vendor Specific Class, Driver=, 480M
                |__ Port 5: Dev 48, If 0, Class=Audio, Driver=snd-usb-audio, 12M
                |__ Port 5: Dev 48, If 1, Class=Audio, Driver=snd-usb-audio, 12M
                |__ Port 5: Dev 48, If 2, Class=Audio, Driver=snd-usb-audio, 12M
                |__ Port 5: Dev 48, If 3, Class=Audio, Driver=snd-usb-audio, 12M
                |__ Port 6: Dev 47, If 0, Class=Audio, Driver=snd-usb-audio, 12M
                |__ Port 6: Dev 47, If 1, Class=Audio, Driver=snd-usb-audio, 12M
                |__ Port 6: Dev 47, If 2, Class=Audio, Driver=snd-usb-audio, 12M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M

Here's `lsusb` for reference

Bus 004 Device 047: ID 1395:3556 Sennheiser Communications USB Headset
Bus 004 Device 048: ID 08e4:0170 Pioneer Corp. 
Bus 004 Device 050: ID 18d1:4ee2 Google Inc. Nexus 4 (debug)
Bus 004 Device 051: ID 1532:0015 Razer USA, Ltd 
Bus 004 Device 046: ID 04d9:1818 Holtek Semiconductor, Inc. 
Bus 004 Device 045: ID 04cc:1521 ST-Ericsson USB 2.0 Hub
Bus 004 Device 003: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:0811  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I'm not sure what 'If' stands for in the tree view, but it looks like it relates to the different parts of the device. I know that the DJ equipment also allows for audio to be played back into it, I don't need this feature though. I'm wondering if it would be possible to disable that particular part of the device and leave the audio output working.

Offline

Board footer

Powered by FluxBB