[pulseaudio-discuss] Pulseaudio on pandaboard problem re-visited..

Shawn Ferris shawn.ferris at gmail.com
Sun Apr 29 13:31:21 PDT 2012


Hey All --

I could really use a hand to troubleshoot my pulseaudio config again on my
pandaboard. I was never able to get audio to work through PA, but alsa
directly works great. I just haven't been able to work on it for the
last several months due to other priorities, but I figured the time
away would be good as things start to mature in terms of panda support.
Unfortunately, despite rebuilding my image (buildroot) from scratch using
the latest releases, I'm still in the exact same boat.

<<configuration info follows the email>>

The behavior that I'm having is that most things wont play through PA. A test
source works just fine, but that's about all. However, through raw
alsa, everything
is fine. IE, here are the things that work:

gst-launch audiotestsrc \
  ! audioconvert \
  ! alsasink

gst-launch audiotestsrc \
  ! audioconvert \
  ! pulsesink

gst-launch alsasrc device=hw:2 \
  ! audioconvert \
  ! audioresample \
  ! alsasink

Ultimately, I have an FM tuner that I want to direct to the sound
card. The latter
command does just that and works perfectly using alsa sink & source. And I've
tried these combinations without success:

gst-launch pulsesrc
device="alsa_input.usb-ADS_TECH_ADS_InstantFM_Music-00-Music.analog-ste
reo" \
  ! audioconvert \
  ! audioresample \
  ! pulsesink device="alsa_output.platform-soc-audio.default-mapping-output"

gst-launch pulsesrc
device="alsa_input.usb-ADS_TECH_ADS_InstantFM_Music-00-Music.analog-ste
reo" \
  ! audioconvert \
  ! audioresample \
  ! alsasink

gst-launch alsasrc device=hw:2 \
  ! audioconvert \
  ! audioresample \
  ! pulsesink device="alsa_output.platform-soc-audio.default-mapping-output"

That is, pulsesrc -> pulsesink, pulsesrc -> alsasink and alsasrc -> pulsesink.
I can't hear anything using any of these combinations. I've also made sure that
all that volumes (that I know of) are 100% and un-muted:

To confirm that pulseaudio is working for at least the sink: (this generates
a tone from my headset.. and even though it uses the pulsesink, it works)

gst-launch audiotestsrc \
  ! audioconvert \
  ! pulsesink

>>> list-sinks
1 sink(s) available.
  * index: 0
	name: <alsa_output.platform-soc-audio.default-mapping-output>
	driver: <module-alsa-card.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
	state: RUNNING
	suspend cause:
	priority: 9000
	volume: 0: 100% 1: 100%
	        0: 0.00 dB 1: 0.00 dB
	        balance 0.00
	base volume: 100%
	             0.00 dB
	volume steps: 65537
	muted: no
	... snip ...

>>> list-sink-inputs
1 sink input(s) available.
    index: 2
	driver: <protocol-native.c>
	flags: START_CORKED
	state: RUNNING
	sink: 0 <alsa_output.platform-soc-audio.default-mapping-output>
	volume: 0: 100%
	        0: 0.00 dB
	        balance 0.00
	muted: no
	... snip ...

This is ultimately what I want working: (and this does not produce any
sound from my headset)

gst-launch pulsesrc
device="alsa_input.usb-ADS_TECH_ADS_InstantFM_Music-00-Music.analog-stereo"
\
  ! audioconvert \
  ! audioresample \
  ! pulsesink device="alsa_output.platform-soc-audio.default-mapping-output"

>>> list-sinks
1 sink(s) available.
  * index: 0
	name: <alsa_output.platform-soc-audio.default-mapping-output>
	driver: <module-alsa-card.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
	state: RUNNING
	suspend cause:
	priority: 9000
	volume: 0: 100% 1: 100%
	        0: 0.00 dB 1: 0.00 dB
	        balance 0.00
	base volume: 100%
	             0.00 dB
	volume steps: 65537
	muted: no

  * index: 1
	name: <alsa_input.usb-ADS_TECH_ADS_InstantFM_Music-00-Music.analog-stereo>
	driver: <module-alsa-card.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: RUNNING
	suspend cause:
	priority: 9049
	volume: 0: 100% 1: 100%
	        0: 0.00 dB 1: 0.00 dB
	        balance 0.00
	base volume: 100%
	             0.00 dB
	volume steps: 65537
	muted: no

>>> list-sink-inputs
1 sink input(s) available.
    index: 5
	driver: <protocol-native.c>
	flags: START_CORKED
	state: RUNNING
	sink: 0 <alsa_output.platform-soc-audio.default-mapping-output>
	volume: 0: 100% 1: 100%
	        0: 0.00 dB 1: 0.00 dB
	        balance 0.00
	muted: no

And, not that I should need to, all volumes are 100% and un-muted, but
just in case:

>>> set-sink-mute 0 false
>>> set-source-mute 1 false
>>> set-sink-input-mute 5 false
>>> set-sink-volume 0 65536
>>> set-source-volume 1 65536
>>> set-sink-input-volume 5 65536

Still, I hear nothing from the latter case. But the test tone is loud
and clear. I've also
eliminated gst as using paplay with a simple wave file doesn't work.

Any suggestions on where I look?

Thanks in advance for any help you can provide!

Shawn

I'm running this linaro kernel branch:
http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=tree;h=4dc1647dabdaa66dbd10ee5142f71d1a729a1f39;hb=4dc1647dabdaa66dbd10ee5142f71d1a729a1f39

$ pulseaudio --version
pulseaudio 1.1

$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.24.

In default.pa I commented out the console kit stuff, but otherwise
/etc/pulse is unmodified.
#.ifexists module-console-kit.so
#load-module module-console-kit
#.endif

I have these udev rules:
ATTRS{id}=="SDP4430", ENV{PULSE_PROFILE_SET}="4430.conf"
ATTRS{id}=="Panda", ENV{PULSE_PROFILE_SET}="4430.conf"
ATTRS{id}=="PandaES", ENV{PULSE_PROFILE_SET}="4430.conf"

And 4430.conf contains:
[General]
auto-profiles = no

[Mapping default-mapping-output]
description = Default headset testing TI 4430 based board
device-strings = plughw:%f,0
channel-map = front-left,front-right
direction = output

[Mapping mapping-output-6]
description = TI 4430 based - output 6
device-strings = plughw:%f,6
channel-map = front-left,front-right
direction = output

[Mapping mapping-output-8]
description = TI 4430 based - output 8
device-strings = plughw:%f,8
channel-map = front-left,front-right
direction = output

[Mapping default-mapping-input]
description = Default headset testing TI 4430 based board
device-strings = plughw:%f,0
channel-map = front-left,front-right
direction = input

[Profile output:default-mapping-output+input:default-mapping-input]
description = Default profile 0
output-mappings = default-mapping-output
input-mappings = default-mapping-input
priority = 50
skip-probe = yes

[Profile output:mapping-output-6+input:default-mapping-input]
description = profile ouput 6
output-mappings = mapping-output-6
input-mappings = default-mapping-input
priority = 50
skip-probe = yes

[Profile output:mapping-output-8+input:default-mapping-input]
description = profile ouput 8
output-mappings = mapping-output-8
input-mappings = default-mapping-input
priority = 50
skip-probe = yes


More information about the pulseaudio-discuss mailing list