Re: USB sound card device complains about "error -28: not enough bandwidth" only on specific PC hardware, seems not kernel specific
[re-send dropping the HTML format to work around VGER's silly plain-text-only rule] Hello Alan, First off, thanks for the response and sorry for the delay here.. very busy here! The problem is caused by the ehci-hcd driver's not-so-great support for scheduling periodic transfers to full-speed devices. That's why the HP and Dell systems have no trouble but your Gateway laptop can't handle it. There are various reports that the Windows driver has an option to FORCE this X-Fi device to use USB high speed which solves some specific sound quality issues, etc. but I have not seen anything about needing that switch to support 96khz at. There was a similar trick done on the Audigy2 NX card and I'd be willing to try some code that could force the device to high speed that but it's unclear what's needed for the X-Fi card. Audigy 2 NX required a hack to go into highspeed mode http://comments.gmane.org/gmane.linux.usb.general/20816 I've also researched around where some people recommended to remove the EHCI module to use the OHCI but that doesn't seem to work on this specific laptop's chipset. To be clear, I'm ONLY looking to record two channel (stereo) from this sound card's line-in. I'm more than happy to disable any playback, etc. if that might allow this USB device to stay under the Full speed bandwidth limit You can provide some more details: The output from "lsusb -v" for the sound card, and a usbmon trace showing the RECORD failure (see Documentation/usb/usbmon.txt for instructions). Absolutely. Please see here: http://www.trinityos.com/SCRATCH/ --David -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: USB sound card device complains about "error -28: not enough bandwidth" only on specific PC hardware, seems not kernel specific
Hello Alan, Going to high speed would undoubtedly fix your problem, but we can't do it if we don't know how. Is there any way for you to use your device with Windows, force it to high speed, and record the USB commands that Windows uses to do this? Sure.. I can put it on the Windows machine and try to record the USB commands but I need some guidance (HOWTO, documentation, etc) of what software I need to do this. The usbmon trace showed there was audio-out data being sent at the time the first error occurred during the initial connection. But there wasn't any audio-out during the second error, so it's not the cause. I have no idea why there would be audio going out that device once connected. The laptop's internal sound card is the default sound device. Maybe a minor initialization bug? I do know that with the 3.4.4 kernels, I wouldn't see that initial "not enough bandwidth" error upon connecting it. Regardless, when I would try the 96Khz recording with the 3.4.4 kernel, I'd still get the error. Which kernel version were you using when you recorded these? That was with a Centos6 kernel: 2.6.32-220.7.1.el6.ax25.x86_64 #1 SMP Sun Mar 18 15:51:48 PDT 2012 x86_64 x86_64 x86_64 GNU/Linux As I mentioned above, I also have a Vanilla 3.4.4 kernel that I can use though the USB behavior is basically the same. --David Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: USB sound card device complains about "error -28: not enough bandwidth" only on specific PC hardware, seems not kernel specific
It depends on what version of Windows you're running. There are programs freely available, but I don't have a list. Try doing a web search for: USB snoop windows. Ok.. will do. I'm finding tools like the following. Recognize any of them? SniffUSB 2.0 - XP only - Seems free - http://www.pcausa.com/Utilities/UsbSnoop/ USBlyzer - various windows - $200! ouch - http://www.usblyzer.com/ Curious, will doing this snooping on a *different computer* be acceptable? This Gateway laptop only has Linux on it and though I could get a new SATA disk for it, doing the requested USB sniff capture to enable the High Speed "poke" on a different box would be far easier. I'm thinking of doing this on a Windows XP box. Can you run the same test with the 3.4.4 kernel? In fact, can you build your own kernel with CONFIG_USB_DEBUG enabled? Sure.. if you want, I can do it with a newer kernel if you'd like.. 3.5.x? Let me know and I'll start compiling it. --David -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: USB sound card device complains about "error -28: not enough bandwidth" only on specific PC hardware, seems not kernel specific
Hello Alan, Ok... I've uploaded the DEBUG enabled 3.5.2 kernel logs as requested and I'm working on getting the USB snooping going on the old Athlon 1.1Ghz Windows XP machine (yuk!). http://www.trinityos.com/SCRATCH/ Regardless of getting this possible high-speed hack working, could you explain a bit by what you meant by: "The problem is caused by the ehci-hcd driver's not-so-great support for scheduling periodic transfers to full-speed devices. That's why the HP and Dell systems have no trouble but your Gateway laptop can't handle it. " To me if I'm doing the math right, 2 (two stereo channels) * 24 (bit) * 96,000 (sampling) == 4.6Mb/s which is only a third of the USB port's speed when even running in FULL speed mode! Why would it be complaining when there isn't anything else on this bus? What are the chances when/if this EHCI driver will get some fixes for this issue? Btw, this might be helpful but the "quisk" program I'm using has a portaudio (not PulseAudio) script to show devices and their abilities. The onboard soundcard works all the way up to 192Khz but it's horribly noisy and ironically, it's lowpass/highpass filtering seems to only support ~70Khz worth of bandwidth though the chip can do far better! Lame. Guess that's what one gets for a $400 laptop these days. $ python portaudio.py ALSA lib pcm.c:2209:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2209:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe ALSA lib pcm.c:2209:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side Open 0 Version 1899 Version Text PortAudio V19-devel (built Jan 17 2012 04:03:50) NumDev 12 Device 0, host api ALSA Name HDA Intel PCH: ALC269VB Analog (hw:0,0) Max inputs 2, Max outputs 2 Speeds for 2-channel paInt32: 44100 48000 96000 192000 Device 1, host api ALSA Name HDA Intel PCH: HDMI 0 (hw:0,3) Max inputs 0, Max outputs 8 Speeds for 2-channel paInt32: 44100 48000 96000 192000 Device 2, host api ALSA Name SB X-Fi Surround 5.1 Pro: USB Audio (hw:1,0) Max inputs 2, Max outputs 6 Speeds for 2-channel paInt32: 48000 96000 Device 3, host api ALSA Name SB X-Fi Surround 5.1 Pro: USB Audio #1 (hw:1,1) Max inputs 0, Max outputs 2 Speeds for 2-channel paInt32: 44100 48000 Device 4, host api ALSA Name front Max inputs 0, Max outputs 2 Speeds for 2-channel paInt32: 44100 48000 96000 192000 Device 5, host api ALSA Name surround40 Max inputs 0, Max outputs 2 Speeds for 2-channel paInt32: 44100 48000 96000 192000 Device 6, host api ALSA Name surround51 Max inputs 0, Max outputs 2 Speeds for 2-channel paInt32: 44100 48000 96000 192000 Device 7, host api ALSA Name surround71 Max inputs 0, Max outputs 2 Speeds for 2-channel paInt32: 44100 48000 96000 192000 Device 8, host api ALSA Name hdmi Max inputs 0, Max outputs 8 Speeds for 2-channel paInt32: 44100 48000 96000 192000 Device 9, host api ALSA Name pulse Max inputs 32, Max outputs 32 Speeds for 2-channel paInt32: 44100 48000 96000 192000 Device 10, host api ALSA Name dmix Max inputs 0, Max outputs 2 lots of the following: ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave Expression 'ret' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1669 Expression 'AlsaOpen( hostApi, parameters, streamDir, &pcm )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1701 ... and then Speeds for 2-channel paInt32: Device 11, host api ALSA Name default Max inputs 32, Max outputs 32 Speeds for 2-channel paInt32: 44100 48000 96000 192000 Close 0 --David -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: USB sound card device complains about "error -28: not enough bandwidth" only on specific PC hardware, seems not kernel specific
Hello Alan, The best that can be said is that it sort of works most of the time. But there are plenty of cases where it doesn't work, and you are facing one of them. Geee... I feel honored! (g) That's usually my luck with Linux but I've always been a glutton for punishment, I mean, up for the challenge so I'll keep at it. ;-) By the way, now that you've got CONFIG_USB_DEBUG enabled, there's something I'd like to see. I'm assuming you've got a debugfs filesystem mounted on /sys/kernel/debug. Go into /sys/kernel/debug/usb/ehci/:00:1d.0/ (that's the directory corresponding to the controller your device is plugged into, bus 2) and post a copy of the "periodic" file in that directory Something is a miss here as that path ( /sys/kernel/debug/usb/ehci ) doesn't exist and I'm also getting new hourly errors complaining about missing proc entries like: /sys/devices/system/cpu/sched_mc_power_savings I imagine it might be a specific issue with this modern kernel running on "old.. centos6 kernel) so I've posted my kernel config here: http://www.trinityos.com/SCRATCH/3.5.2-1.ax25.el6.x86_64 . . . -rw-r--r-- 1 dranch dranch 130080 Aug 26 12:24 kernel-ml-3.5.2-config.txt -rw-r--r-- 1 dranch dranch 353212 Aug 26 12:24 usbdebug-sys-dir.txt If you can help me figure out why the EHCI debug interface isn't showing up (maybe the /proc line is a hint), I'll recompile and get the results you asked for. --David -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
USB sound card device complains about "error -28: not enough bandwidth" only on specific PC hardware, seems not kernel specific
Hello Everyone, I've been researching this specific issue and I'm coming to the conclusion my problem is a USB chipset / kernel infrastructure specific issue and not a problem with the USB device or it's ALSA driver. If anyone has some ideas of how I might be able to work around this problem or what additional details are needed to help troubleshoot this issue, I'd love to hear from you. Failure details: - I have a SoundBlaster X-Fi full-speed USB device on a Gateway NV57H (Acer) laptop (Intel i5 dual core with HM65 (SandyBridge) chipset [no USB 3.0 on this platform] - http://support.gateway.com/s/notebook/2010/gateway/nv/nv57h/NV57Hsp2.shtml . When I connect this USB device to any of the three USB ports on this platform (all other ports are disconnected) and try to RECORD (use the line-in jack at 96Khz stereo.. I'm not trying to do anything additional than just 2 channels ), I get the below errors. If I only ask to record at 48Khz, it works fine with no errors. I get these results either with the stock Centos 6 2.6.32 kernel installed on the HD, stock Centos 6 running from a LiveCD (reduces any risk of me introducing possible configuration problems), a Ubuntu 10.11 livecd running a 3.0.0 kernel, and a custom compiled vanilla 3.4.4 kernel running on the Centos6 HD installation. I chose 3.4.4 as I saw that there were some fixes in the 3.1.3 kernel for "not enough bandwidth" issues per the release notes but all tests came up with the same 96Khz failure. ** Please see below for a success report on a different computer with the same kernels, etc. -- Jul 16 19:05:18 hampacket2 kernel: usb 2-1.2: new full speed USB device using ehci_hcd and address 62 Jul 16 19:05:18 hampacket2 kernel: usb 2-1.2: New USB device found, idVendor=041e, idProduct=30df Jul 16 19:05:18 hampacket2 kernel: usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Jul 16 19:05:18 hampacket2 kernel: usb 2-1.2: Product: SB X-Fi Surround 5.1 Pro Jul 16 19:05:18 hampacket2 kernel: usb 2-1.2: Manufacturer: Creative Technology Ltd Jul 16 19:05:18 hampacket2 kernel: usb 2-1.2: SerialNumber: 04qe Jul 16 19:05:18 hampacket2 kernel: usb 2-1.2: configuration #1 chosen from 1 choice Jul 16 19:05:20 hampacket2 rtkit-daemon[2848]: Sucessfully made thread 873 of process 25871 (/usr/bin/pulseaudio) owned by '500' RT at priority 5. Jul 16 19:05:20 hampacket2 rtkit-daemon[2848]: Sucessfully made thread 874 of process 25871 (/usr/bin/pulseaudio) owned by '500' RT at priority 5. Jul 16 19:05:20 hampacket2 kernel: ALSA endpoint.c:856: cannot submit datapipe for urb 0, error -28: not enough bandwidth <--- Jul 16 19:05:21 hampacket2 pulseaudio[25871]: ratelimit.c: 11 events suppressed # lspci 00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09) 00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) 00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04) 00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04) 00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b4) 00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b4) 00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation HM65 Express Chipset Family LPC Controller (rev 04) 00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04) 00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04) 02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57785 Gigabit Ethernet PCIe (rev 10) 02:00.1 SD Host controller: Broadcom Corporation NetXtreme BCM57765 Memory Card Reader (rev 10) 02:00.2 System peripheral: Broadcom Corporation Device 16be (rev 10) 02:00.3 System peripheral: Broadcom Corporation Device 16bf (rev 10) -- In my research, some posts recommended to front the USB sound card full speed device with a USB 1.1 hub to force the communication path to 12Mb/s but that didn't help in my situation. Success details: --- I tested the stock Centos6 2.6.32 kernel and vanilla 3.4.4 kernel setups on different platform (a Hp Pavilion P6310Pf AMD-based desktop - http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01949155&tmp_task=prodinfoCategory&cc=us&dlc=en&lang=en&lc=en&product=4107914 ) and it did NOT have any problems at 96Khz One note: On the this Hp desktop, the sound card is supported via the OHCI