[pulseaudio-discuss] Crash when testing PulseAudio 3.0 on a Pandaboard ES.

Luke Yelavich themuso at ubuntu.com
Thu Jan 24 16:40:26 PST 2013


On Mon, Jan 21, 2013 at 05:16:44PM EST, Tanu Kaskinen wrote:
> On Mon, 2013-01-21 at 16:44 +1100, Luke Yelavich wrote:
> > On Mon, Jan 21, 2013 at 09:55:07AM EST, Tanu Kaskinen wrote:
> > > On Mon, 2013-01-21 at 09:08 +1100, Luke Yelavich wrote:
> > > > On Fri, Jan 18, 2013 at 06:22:05PM EST, Tanu Kaskinen wrote:
> > > > > On Fri, 2013-01-18 at 16:08 +1100, Luke Yelavich wrote:
> > > > > > Hey folks,
> > > > > > I was attempting to test Pulse 3.0 on a PandaBoard ES for something
> > > > > > completely unrelated, however when attepting to load PulseAudio, it
> > > > > > crashed when attempting to make use of UCM. The stacktrace is
> > > > > > attached, and I still have the core dump if anybody requires that as
> > > > > > well. This test was conducted on Ubuntu Raring with all latest updates
> > > > > > for the PandaBoard.
> > > > > > 
> > > > > > Happy to provide information if required, and I hope this stacktrace
> > > > > > is useful to whip up a fix.
> > > > > 
> > > > > Looks like an alsa-lib bug that has been fixed in 1.0.26.
> > > > 
> > > > Thanks, will round up the patch and get it included in our package.
> > > 
> > > So you can't upgrade alsa-lib to 1.0.26? I'm not sure if "round up"
> > > means that you already know which patch it is or not, so here's a link
> > > to the patch:
> > > 
> > > http://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=e16a9a04b190c1c7981d9c65c08c504b9a23fe37
> > 
> > Thanks, I figured that was the one. As for upgrading to 1.0.26 ALA, we
> > haven't got to it yet, and it requires a little QA testing before we
> > throw it in. Pulse is getting sed testing atm, so whilst 1.0.26 wille
> > ventually l and, I need to solve this bug now, and then move onto
> > 1.0.26.
> > 
> > Unfortunately it seems that I still get a crash with that patch
> > included. Traceback attached.
> 
> Are you sure you are testing a properly patched alsa-lib? If you are,
> then this is some other alsa-lib bug. ucm_get_modifiers() in pulseaudio
> definitely doesn't do any double-freeing.

Yes, I have verified that I was testing with your referenced patch, and alsa 1.0.26 twice, and I still get the crash.

For reference, I am also attaching the UCM files that are used in Ubuntu for the PandaBoardES, which is what I am using. I haven't verified their syntax beyond making sure they are packaged.

Luke
-------------- next part --------------
# Use case Configurationfor TI PandaBoardES HiFi Music
# By Liam Girdwood <lrg at slimlogic.co.uk>

SectionVerb {
  	EnableSequence [
                cdev "hw:PandaBoardES"
                cset "name='AMIC_UL PDM Switch' 1"
                cset "name='MUX_UL00' 9"
                cset "name='MUX_UL01' 10"
                cset "name='Capture Volume' 4"
	]


	DisableSequence [
                cdev "hw:PandaBoardES"
                cset "name='AMIC_UL PDM Switch' 0"
                cset "name='MUX_UL00' 0"
                cset "name='MUX_UL01' 0"
                cset "name='Capture Volume' 0"
	]

	# Optional TQ and ALSA PCMs
	Value {
		TQ "Music"
                CapturePCM "hw:0,0"
	}
}

SectionDevice."Headset".0 {
	Comment "PandaBoardES 3.5mm Headset"
	
	EnableSequence [
                cdev "hw:PandaBoardES"
                cset "name='Analog Left Capture Route' 2"
                cset "name='Analog Right Capture Route' 2"
                cset "name='Capture Preamplifier Volume' 2"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
                cset "name='Analog Left Capture Route' 3"
                cset "name='Analog Right Capture Route' 3"
                cset "name='Capture Preamplifier Volume' 0"
	]
}

-------------- next part --------------
# UCM configuration for PandaBoardES
SectionUseCase."Record" {
 		File "record"
 		Comment "Record."
}

SectionUseCase."HiFi" {
 		File "hifi"
 		Comment "Play HiFi quality Music."
}

SectionUseCase."HiFi_Low_Power" {
 		File "hifiLP"
 		Comment "Play HiFi quality Music in Low Power Mode."
}

SectionUseCase."Voice" {
 		File "voice"
 		Comment "Playback Voice quality."
}

SectionUseCase."Voice_Low_Power" {
 		File "voice"
 		Comment "Playback Voice quality in Low Power Mode."
}

SectionUseCase."Voice_Call" {
 		File "voiceCall"
 		Comment "Capture and Playback in Voice quality."
}

SectionUseCase."Voice_Call_IP" {
 		File "voiceCall"
 		Comment "Capture and Playback in Voice quality."
}

SectionUseCase."FM_Analog_Radio" {
 		File "FMAnalog"
 		Comment "Capture FM Analog Radio."
}

SectionDefaults [
                cdev "hw:PandaBoardES"
		exec "echo Im setting PandaBoardES defaults"
]
-------------- next part --------------
# Use case Configuration for TI PandaBoardES HiFi Music
# By Liam Girdwood <lrg at slimlogic.co.uk>

SectionVerb {
  	EnableSequence [
                cdev "hw:PandaBoardES"
		cset "name='DL1 Mixer Multimedia' 1"
		cset "name='Sidetone Mixer Playback' 1"
                cset "name='DL1 PDM Switch' 1"
		cset "name='DL1 Media Playback Volume' 90,90"
                cset "name='SDT DL Volume' 120"

                cset "name='Headset Left Playback' 1"
                cset "name='Headset Right Playback' 1"
                cset "name='Headset Playback Volume' 13"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
		cset "name='DL1 Mixer Multimedia' 0"
		cset "name='Sidetone Mixer Playback' 0"
                cset "name='DL1 PDM Switch' 0"
		cset "name='DL1 Media Playback Volume' 0,0"
                cset "name='SDT DL Volume' 0"

		cset "name='Headset Right Playback' 0"
		cset "name='Headset Left Playback' 0"
                cset "name='Headset Playback Volume' 0"
	]

 	# Optional TQ and ALSA PCMs
#	Value {
#		TQ "Music"
#		PlaybackPCM "hw:0,0"
#                PlaybackVolume "name='DL1 Media Playback Volume' 90,90"
#                PlaybackSwitch "name='DL1 PDM Switch' 1"
#	}
}

SectionDevice."Headset".0 {
	Comment "PandaBoardES 3.5mm Headset"
	
	EnableSequence [
                cdev "hw:PandaBoardES"
                cset "name='Headset Left Playback' 1"
                cset "name='Headset Right Playback' 1"
                cset "name='Headset Playback Volume' 13"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
		cset "name='Headset Right Playback' 0"
		cset "name='Headset Left Playback' 0"
                cset "name='Headset Playback Volume' 0"
	]
}

#SectionModifier."RecordMedia".0 {
#	SupportedDevice [
#		"Headset"
#	]
 #       EnableSequence [
 #         ....
 #       ]
 #
 #       DisableSequence [
 #         ...
 #       ]
 #
 #       TransitionSequence."ToModifierName" [
 #         ...
 #       ]
 #
 #       # Optional TQ and ALSA PCMs
 #       Value {
 #               TQ Voice
 #               CapturePCM "hw:1"
 #               PlaybackVolume "name='Master Playback Volume',index=2"
 #               PlaybackSwitch "name='Master Playback Switch',index=2"
 #       }
#
#}

-------------- next part --------------
# Use case Configuration for TI PandaBoardES HiFi Music
# By Liam Girdwood <lrg at slimlogic.co.uk>

SectionVerb {
  	EnableSequence [
                cdev "hw:PandaBoardES"
		cset "name='DL1 Mixer Multimedia' 1"
		cset "name='Sidetone Mixer Playback' 1"
                cset "name='DL1 PDM Switch' 1"
		cset "name='DL1 Media Playback Volume' 90,90"
                cset "name='SDT DL Volume' 120"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
		cset "name='DL1 Mixer Multimedia' 0"
		cset "name='Sidetone Mixer Playback' 0"
                cset "name='DL1 PDM Switch' 0"
		cset "name='DL1 Media Playback Volume' 0,0"
                cset "name='SDT DL Volume' 0"
	]

	# Optional TQ and ALSA PCMs
	Value {
		TQ "Music"
		PlaybackPCM "hw:0,6"
	}
}

SectionDevice."Headset".0 {
	Comment "PandaBoardES 3.5mm Headset"
	
	EnableSequence [
                cdev "hw:PandaBoardES"
                cset "name='Headset Left Playback' 1"
                cset "name='Headset Right Playback' 1"
                cset "name='Headset Playback Volume' 13"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
		cset "name='Headset Right Playback' 0"
		cset "name='Headset Left Playback' 0"
                cset "name='Headset Playback Volume' 0"
	]
}
-------------- next part --------------
# Use case Configuration for TI PandaBoardES HiFi Music
# By Liam Girdwood <lrg at slimlogic.co.uk>

SectionVerb {
  	EnableSequence [
                cdev "hw:PandaBoardES"
                # No more AMIC PDM Switch in current kernels
                #cset "name='AMIC_UL PDM Switch' 1"
                cset "name='MUX_UL00' 9"
                cset "name='MUX_UL01' 10"
                cset "name='Capture Volume' 4"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
                # No more AMIC PDM Switch in current kernels
                #cset "name='AMIC_UL PDM Switch' 0"
                cset "name='MUX_UL00' 0"
                cset "name='MUX_UL01' 0"
                cset "name='Capture Volume' 0"
	]

	# Optional TQ and ALSA PCMs
	Value {
		TQ "Music"
		CapturePCM "hw:0,0"
	}

}

SectionDevice."Headset".0 {
	Comment "PandaBoardES 3.5mm Headset"
	
	EnableSequence [
                cdev "hw:PandaBoardES"
                cset "name='Analog Left Capture Route' 0"
                cset "name='Analog Right Capture Route' 0"
                cset "name='Capture Preamplifier Volume' 2"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
                cset "name='Analog Left Capture Route' 3"
                cset "name='Analog Right Capture Route' 3"
                cset "name='Capture Preamplifier Volume' 0"
	]
}
-------------- next part --------------
# Use case Configuration for TI PandaBoardES HiFi Music
# By Liam Girdwood <lrg at slimlogic.co.uk>

SectionVerb {
  	EnableSequence [
                cdev "hw:PandaBoardES"
		cset "name='DL1 Mixer Voice' 1"
		cset "name='Sidetone Mixer Playback' 1"
                cset "name='DL1 PDM Switch' 1"
		cset "name='DL1 Voice Playback Volume' 90,90"
                cset "name='SDT DL Volume' 120"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
		cset "name='DL1 Mixer Voice' 0"
		cset "name='Sidetone Mixer Playback' 0"
                cset "name='DL1 PDM Switch' 0"
		cset "name='DL1 Voice Playback Volume' 0,0"
                cset "name='SDT DL Volume' 0"
	]

	# Optional TQ and ALSA PCMs
	Value {
		TQ "Voice"
		PlaybackPCM "hw:0,2"
	}
}

SectionDevice."Headset".0 {
	Comment "PandaBoardES 3.5mm Headset"
	
	EnableSequence [
                cdev "hw:PandaBoardES"
                cset "name='Headset Left Playback' 1"
                cset "name='Headset Right Playback' 1"
                cset "name='Headset Playback Volume' 13"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
		cset "name='Headset Right Playback' 0"
		cset "name='Headset Left Playback' 0"
                cset "name='Headset Playback Volume' 0"
	]
}
-------------- next part --------------
# Use case Configuration for TI PandaBoardES HiFi Music
# By Liam Girdwood <lrg at slimlogic.co.uk>

SectionVerb {
  	EnableSequence [
                cdev "hw:PandaBoardES"
                cset "name='AMIC_UL PDM Switch' 1"
                cset "name='Sidetone Mixer Capture' 1"
                cset "name='MUX_VX0' 9"
                cset "name='MUX_VX1' 10"
		cset "name='DL1 Mixer Voice' 1"
		cset "name='Sidetone Mixer Playback' 1"
                cset "name='DL1 PDM Switch' 1"
		cset "name='DL1 Voice Playback Volume' 90,90"
                cset "name='Capture Volume' 4"
                cset "name='Capture Mixer Voice Capture' 90,90"
                cset "name='SDT DL Volume' 120"
	]


	DisableSequence [
                cdev "hw:PandaBoardES"
                cset "name='AMIC_UL PDM Switch' 0"
                cset "name='Sidetone Mixer Capture' 0"
                cset "name='MUX_VX0' 0"
                cset "name='MUX_VX1' 0"
		cset "name='DL1 Mixer Voice' 0"
		cset "name='Sidetone Mixer Playback' 0"
                cset "name='DL1 PDM Switch' 0"
		cset "name='DL1 Voice Playback Volume' 0,0"
                cset "name='Capture Volume' 0"
		cset "name='DL1 Voice Playback Volume' 0,0"
                cset "name='SDT DL Volume' 0"
	]

	# Optional TQ and ALSA PCMs
	Value {
		TQ "Voice"
                CapturePCM "hw:0,2"
		PlaybackPCM "hw:0,2"
	}
}

SectionDevice."Headset".0 {
	Comment "PandaBoardES 3.5mm Headset"
	
	EnableSequence [
                cdev "hw:PandaBoardES"
                cset "name='Analog Left Capture Route' 0"
                cset "name='Analog Right Capture Route' 0"
                cset "name='Capture Preamplifier Volume' 2"
                cset "name='Headset Left Playback' 1"
                cset "name='Headset Right Playback' 1"
                cset "name='Headset Playback Volume' 13"
	]

	DisableSequence [
                cdev "hw:PandaBoardES"
                cset "name='Analog Left Capture Route' 3"
                cset "name='Analog Right Capture Route' 3"
                cset "name='Capture Preamplifier Volume' 0"
		cset "name='Headset Right Playback' 0"
		cset "name='Headset Left Playback' 0"
                cset "name='Headset Playback Volume' 0"
	]
}



More information about the pulseaudio-discuss mailing list