CONFIG_USB_EHCI_SPLIT_ISO not being set causes errors when attempting to play audio through a usb sound device connected via hub

Bug #28840 reported by Simon Watson
42
Affects Status Importance Assigned to Milestone
Ubuntu
Invalid
Medium
Unassigned
alsa-lib (Ubuntu)
Invalid
Medium
Unassigned
linux-source-2.6.15 (Ubuntu)
Fix Released
Wishlist
Ben Collins

Bug Description

I am running Ubuntu Dapper on a Dell D600 laptop. When playing audio to the onboard card, rhythmbox works as intend - and rather well!

However - when I plug in the USB soundcard, which is detected fine by ALSA, and set the sound preferences to use the Sound Blaster MP3+ device - rhythmbox bombs when playing sounds. It comes up with an internal data flow error.

Revision history for this message
Phil Bull (philbull) wrote :

Thanks for the report. Can you provide us with any more information?

Try running Rhythmbox from the terminal and reproducing the error. It may output some useful error text. Or even better, could you provide a backtrace of the crash?

https://wiki.ubuntu.com/DebuggingProgramCrash

Changed in rhythmbox:
assignee: nobody → seb128
status: Unconfirmed → Needs Info
Revision history for this message
Simon Watson (simon-swat) wrote :

Here is the debug output:

[0x8103890] [rb_shuffle_play_order_get_next] rb-play-order-shuffle.c:172 (09:02:32): choosing next entry in shuffle
[0x8103890] [rb_shell_player_open_location] rb-shell-player.c:884 (09:02:32): Opening file:///media/temp/My Music/Dire Straits/Private Investigations- The Best Of Dire Straits And Mark Knopfler (2005)/12 - Calling Elvis.mp3...
[0x8103890] [rb_player_sync_pipeline] rb-player-gst.c:629 (09:02:32): syncing pipeline
[0x8103890] [rb_player_sync_pipeline] rb-player-gst.c:640 (09:02:32): PAUSING pipeline
[0x8103890] [rb_player_sync_pipeline] rb-player-gst.c:629 (09:02:32): syncing pipeline
[0x8103890] [rb_player_sync_pipeline] rb-player-gst.c:631 (09:02:32): PLAYING pipeline
[0x8103890] [rb_player_sync_pipeline] rb-player-gst.c:629 (09:02:32): syncing pipeline
[0x8103890] [rb_player_sync_pipeline] rb-player-gst.c:631 (09:02:32): PLAYING pipeline
[0x8103890] [rb_shell_player_sync_with_source] rb-shell-player.c:1785 (09:02:32): playing source: 0x83cb080, active entry: 0x8457400
[0x8103890] [rb_shell_set_window_title] rb-shell.c:1873 (09:02:32): setting title to "Dire Straits - Calling Elvis"
[0x8103890] [rb_header_sync] rb-header.c:416 (09:02:32): syncing with node = 0x8457400
[0x8103890] [rb_shell_player_sync_buttons] rb-shell-player.c:1842 (09:02:32): syncing with source 0x83cb080
[0x8103890] [rb_shell_player_set_playing_entry] rb-shell-player.c:1018 (09:02:32): Success!
[0x8103890] [rb_shell_hidden_notify] rb-shell.c:2628 (09:02:32): shell is visible, not notifying
[0x8103890] [rb_shell_player_sync_with_source] rb-shell-player.c:1785 (09:02:32): playing source: 0x83cb080, active entry: 0x8457400
[0x8103890] [rb_header_sync] rb-header.c:416 (09:02:32): syncing with node = 0x8457400
[0x8103890] [rb_shell_player_sync_buttons] rb-shell-player.c:1842 (09:02:32): syncing with source 0x83cb080
[0x8103890] [eos_cb] rb-shell-player.c:2123 (09:02:32): updating play statistics
[0x8103890] [rb_shell_player_error] rb-shell-player.c:2143 (09:02:32): playback error while playing: Unable to set hw params for playback: Broken pipe
[0x8103890] [error_cb] rb-shell-player.c:2173 (09:02:32): exiting error hander
[0x8103890] [rb_shell_player_error] rb-shell-player.c:2143 (09:02:32): playback error while playing: Setting of hwparams failed: Broken pipe
[0x8103890] [error_cb] rb-shell-player.c:2173 (09:02:32): exiting error hander
[0x8103890] [rb_shell_player_error] rb-shell-player.c:2143 (09:02:32): playback error while playing: Internal data flow error.
[0x8103890] [error_cb] rb-shell-player.c:2173 (09:02:32): exiting error hander
[0x8103890] [eos_cb] rb-shell-player.c:2080 (09:02:32): eos!

Revision history for this message
Simon Watson (simon-swat) wrote :

Ok - Further investigation - this happens directly with mplayer and other programs as well - they report the same error.

I assume this is related to the alsa packages... which is strange because they were working fine :-/

Phil Bull (philbull)
Changed in rhythmbox:
status: Needs Info → Confirmed
assignee: seb128 → jdthood
Revision history for this message
Phil Bull (philbull) wrote :

What versions of rhythmbox, mplayer and alsa-* do you have installed?

Changed in alsa-lib:
status: Confirmed → Needs Info
Revision history for this message
Simon Watson (simon-swat) wrote :

Unable to access the box till this evening - but basically the latest and greatest stuff from dapper this morning!

Will try and get precise information later on

Revision history for this message
Simon Watson (simon-swat) wrote :

Ok - package information:

Rhythmbox: 0.9.2cvs20060102-0ubuntu1
Mplayer:2:0.99+1.0pre7try2+cvs20060117-0ubuntu1
alsa-lib:1.0.10-3

It really does appear to be an issue with alsa not liking the USB soundcard, it works fine using onboard sound!

Phil Bull (philbull)
Changed in alsa-lib:
assignee: jdthood → ubuntu-bugs
Revision history for this message
Simon Watson (simon-swat) wrote :

Little bit more info from mplayer:

Audio file file format detected.
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 22050 Hz, 2 ch, s16le, 64.0 kbit/9.07% (ratio: 8000->88200)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
Building audio filter chain for 22050Hz/2ch/s16le -> 0Hz/0ch/??...
alsa-init: 1 soundcard found, using: default
alsa-init: unable to set hw-parameters: Broken pipe
alsa-init: pcm prepare error: Broken pipe
alsa: 22050 Hz/2 channels/4 bpf/69696 bytes buffer/Signed 16 bit Little Endian
AO: [alsa] 22050Hz 2ch s16le (2 bytes per sample)
Building audio filter chain for 22050Hz/2ch/s16le -> 22050Hz/2ch/s16le...
Video: no video
Starting playback...
alsa-play: unknown status, trying to reset soundcard
alsa-play: unknown status, trying to reset soundcard2.0 (03:42.0) ??,?%
alsa-play: unknown status, trying to reset soundcard2.0 (03:42.0) ??,?%
alsa-play: unknown status, trying to reset soundcard2.0 (03:42.0) ??,?%
alsa-play: unknown status, trying to reset soundcard2.0 (03:42.0) ??,?%

Changed in alsa-lib:
assignee: ubuntu-bugs → pitti
Revision history for this message
Matt Philmon (mattisking) wrote :

I'm having this problem as well... and it's not Rhythmbox or mplayer... something is wrong with ALSA and USB sound. I removed my Soundblaster Audigy and reinstalled Dapper with my only sound device being my USB Griffin iMic "Soundcard" which works fine under Windows on the same machine. It appears to be properly detected as everything shows it listed as my sound device but nothing, including Gnome (gnome sounds) is able to access it and I always see the same errors I see in other reports above: "unable to set hw-parameters: Broken pipe"

Revision history for this message
Matt Philmon (mattisking) wrote :
Download full text (28.6 KiB)

By the way, in case it helps, here's the output of lsusb -v:

Bus 005 Device 004: ID 077d:07af Griffin Technology
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 1.10
  bDeviceClass 0 (Defined at Interface level)
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor 0x077d Griffin Technology
  idProduct 0x07af
  bcdDevice 0.06
  iManufacturer 1 Griffin Technology, Inc
  iProduct 2 iMic USB audio system
  iSerial 0
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 344
    bNumInterfaces 3
    bConfigurationValue 1
    iConfiguration 3 D3 2003/10/30 09:27
    bmAttributes 0x80
      (Bus Powered)
    MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 0
      bInterfaceClass 1 Audio
      bInterfaceSubClass 1 Control Device
      bInterfaceProtocol 0
      iInterface 0
      AudioControl Interface Descriptor:
        bLength 10
        bDescriptorType 36
        bDescriptorSubtype 1 (HEADER)
        bcdADC 1.00
        wTotalLength 78
        bInCollection 2
        baInterfaceNr( 0) 1
        baInterfaceNr( 1) 2
      AudioControl Interface Descriptor:
        bLength 12
        bDescriptorType 36
        bDescriptorSubtype 2 (INPUT_TERMINAL)
        bTerminalID 12
        wTerminalType 0x0101 USB Streaming
        bAssocTerminal 11
        bNrChannels 2
        wChannelConfig 0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames 0
        iTerminal 0
      AudioControl Interface Descriptor:
        bLength 13
        bDescriptorType 36
        bDescriptorSubtype 6 (FEATURE_UNIT)
        bUnitID 1
        bSourceID 12
        bControlSize 2
        bmaControls( 0) 0x55
        bmaControls( 0) 0x01
          Mute
          Bass
          Treble
          Automatic Gain
          Bass Boost
        bmaControls( 1) 0x02
        bmaControls( 1) 0x00
          Volume
        bmaControls( 2) 0x02
        bmaControls( 2) 0x00
          Volume
        iFeature 0
      AudioControl Interface Descriptor:
        bLength 9
        bDescriptorType 36
        bDescriptorSubtype 3 (OUTPUT_TERMINAL)
        bTerminalID 14
        wTerminalType 0x0301 Speaker
        bAssocTerminal 0
        bSourceID 1
        iTerminal 0
      AudioControl Interface Descriptor:
        bLength 12
        bDescriptorType 36
        bDescriptorSubtype 2 (INPUT_TERMINAL)
        bTerminalID ...

Revision history for this message
Daniel T Chen (crimsun) wrote :

After installing the 'mpg321' package from universe, please test:

$ mpg321 -s foo.mp3 |aplay -fcd

(substitute "foo.mp3" as appropriate) and report whether it produces correct music.

Revision history for this message
Matt Philmon (mattisking) wrote :

well, for me at least (no, it doesn't) I get this:

$ mpg321 -s song.mp3 |aplay -fcd High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.
Version 0.59q (2002/03/23). Written and copyrights by Joe Drew.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Title : ... Artist: Prodigy
Album : Szalacsi CD Year : 2003
Comment: Szalacsi CD Genre : ElectronicElectronic

Playing MPEG stream from song.mp3 ...
MPEG 1.0 layer III, 192 kbit/s, 44100 Hz joint-stereo
Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
aplay: set_params:949: Unable to install hw params:
ACCESS: RW_INTERLEAVED
FORMAT: S16_LE
SUBFORMAT: STD
SAMPLE_BITS: 16
FRAME_BITS: 32
CHANNELS: 2
RATE: 44100
PERIOD_TIME: (125011 125012)
PERIOD_SIZE: 5513
PERIOD_BYTES: 22052
PERIODS: (3 4)
BUFFER_TIME: 500000
BUFFER_SIZE: 22050
BUFFER_BYTES: 88200
TICK_TIME: 1000

Revision history for this message
Soewono Effendi (seffendi) wrote :

output of dmesg would help.
I have problem with USB audio using alsa too.
(C-Media USB Sound Adapter)
In maycase it was error like:
"... failed to submit urb .... -38 "

Revision history for this message
fnord_uk (darren-long) wrote :

I'm also having a problem with a Griffin iMic with Dapper Flight 5. I've been using it (or trying to) for soundcard modem applications for ham radio.

Even an app like cw fails...
user@box:~$ echo "?" | cw -w 18 -t 700 -x /dev/dsp2 -v 30
cw: soundcard write: Broken pipe

but it works for /dev/dsp1 which is my SB compatible.

Hope that this helps you, and that you can help me. I need loads of soundcards. The more the better.

Revision history for this message
Dennis Kaarsemaker (dennis) wrote :

One task is enough

Revision history for this message
Daniel T Chen (crimsun) wrote :

Actually an ALSA -driver bug. Will investigate.

Changed in alsa-lib:
assignee: pitti → kernel-bugs
Revision history for this message
Daniel T Chen (crimsun) wrote :

Are either of these usb sound devices plugged into a usb hub?

Revision history for this message
Simon Watson (simon-swat) wrote :

Yes - it was, and it did resolve itself when plugged directly into the computer. But obviously, the device did work in windows when plugged into the USB hub

Revision history for this message
pfb (pbeeson-14) wrote :

I have this problem as well, but I'm using a Soundblaster Live! 24-bit PCI card. I think it could be alsa and Soundblaster.

Revision history for this message
pfb (pbeeson-14) wrote :

Actually, for me it doesn't bomb, it just gives me the red circle with the white dash in it. If I click on that is says "internal data flow error". But, my sound works greak with xxms, wit hthe gnome login and logout sounds. Right now, it's just rhythmbox.

Revision history for this message
pfb (pbeeson-14) wrote :

I fixed my problem, and maybe it'll help others fix their problem too, though the more I read other posting here, the more I think that this is unrelated to the USB problems discussed above.

Since I have multiple sound cards, I tried the trick of adding a /etc/asound.conf file with the usual pcm.!default blah blah blah to use my soundblaster card. This made rhythmbox not work properly even though other audio worked fine. I removed that file and simply chose the coundcard under my Preferences->Sound menu, and it started working ok (after I restarted alsa to use the new ~/.asoundrc file). In breezy, this menu didn't work, which is when I learned to do the asound.conf thing, but now it does work and the asound.conf thing didn't. Hope this helps, but if not, sorry.

Revision history for this message
Daniel T Chen (crimsun) wrote :

Simon et al., your reports confirm this issue is caused by the following configuration option in the kernel:

# CONFIG_USB_EHCI_SPLIT_ISO is not set

It is an experimental option and not guaranteed to work for all hardware, so it more than likely won't be enabled for Dapper.

I'm setting the severity of this bug to 'wishlist' since there is a somewhat cumbersome workaround (that requires recompiling the kernel with that configuration option enabled).

pfb's issue has nothing to do with this bug and has been resolved with the latest uploads of gnome-control-center and gnome-volume-manager.

Changed in linux-source-2.6.15:
status: Needs Info → Confirmed
Revision history for this message
Daniel T Chen (crimsun) wrote :

Nothing to do with alsa-lib.

Changed in alsa-lib:
status: Unconfirmed → Rejected
Revision history for this message
James Henstridge (jamesh) wrote :

I ran into this too when trying to use a USB headset through a hub. From the description of the kernel config variable, it seems that this problem is only triggered when plugging a USB 1.x sound device into a USB 2.0 hub:

config USB_EHCI_SPLIT_ISO
        bool "Full speed ISO transactions (EXPERIMENTAL)"
        depends on USB_EHCI_HCD && EXPERIMENTAL
        default n
        ---help---
          This code is new and hasn't been used with many different
          EHCI or USB 2.0 transaction translator implementations.
          It should work for ISO-OUT transfers, like audio.

Revision history for this message
fraco (tfroidcoeur) wrote :

the config of the 2.6.12-10-386 kernel (breezy) still has
CONFIG_USB_EHCI_SPLIT_ISO=y
latest dapper kernel has the config set to no

Revision history for this message
fraco (tfroidcoeur) wrote :

btw,

isn't wishlist a bit too low a priority? I mean, it used to work in Breezy, and it is not a lot of work in itself to fix it... Would be too bad if it doesn't get fixed

Revision history for this message
Ben Collins (ben-collins) wrote :

Option enabled.

Changed in linux-source-2.6.15:
assignee: kernel-bugs → ben-collins
status: Confirmed → Fix Committed
Changed in linux-source-2.6.15:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.