I have Card 0 and Card 1 as below. Both cards work with speaker test except card 0, HDMI from a beaglebone Black, will only play one channel or the other, seems to change every time I boot, but it only plays one channel during that boot. So sometimes I boot and it plays only the left channel. other times I boot and it only plays the right channel. The other card, Card 1, USB audio, plays both channels with out an issue. I think my asound.conf file is to blame, and though I've read a lot, I can't seem to see what could be causing this issue as there is very little config information in there.
the only change I made to asound.conf was to test by changing 'card 1' to 'card 0' in the first 10 lines. Prior to making this change, and again, it is almost like alsa is configuring itself at every boot, 'card 0' wasn't listed by aplay and I couldn't run speaker test. Changing '1' to '0' allowed me to run speaker-test on card 0 and card 1, but again, card 0 only wants to play the right channel now. I am monitoring the SPI lines that are currently used for HDMI audio. When the right channel is tested, I see data on the I2S data line; when the other channel is tested, I see nothing (it drops off). I've tried noise, sine waves, etc with speaker-test c2.
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Black [TI BeagleBone Black], device 0: davinci-mcasp.0-i2s-hifi i2s-hifi-0 [davinci-mcasp.0-i2s-hifi i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Audio [USB Audio], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
asound.conf
Code: Select all
pcm.onboard{
type hw
card 0
}
ctl.onboard {
type hw
card 0
}
### Dsnoop splited channels
pcm.onboard_capture_left {
type dsnoop
ipc_key 32
slave {
pcm "onboard"
channels 2
rate 48000
format S32_LE
}
bindings.0 0
}
pcm.onboard_playback_left {
type dmix
ipc_key 33
slave {
pcm "onboard"
channels 2
}
bindings.0 1
}
pcm.onboard_capture_right {
type dsnoop
ipc_key 32
slave {
pcm "onboard"
channels 2
rate 48000
format S32_LE
}
bindings.0 1
}
pcm.onboard_playback_right {
type dmix
ipc_key 33
slave {
pcm "onboard"
channels 2
}
bindings.1 0
}
### PLUGS ##
### used with darkice
### device = plug:plug_onboard_left
pcm.plug_onboard_capture_left{
type plug
slave.pcm "onboard_capture_left"
}
pcm.plug_onboard_playback_left{
type plug
slave.pcm "onboard_playback_left"
}
pcm.plug_onboard_capture_right{
type plug
slave.pcm "onboard_capture_right"
}
pcm.plug_onboard_playback_right{
type plug
slave.pcm "onboard_playback_right"
}
pcm.!default {
type asym
playback.pcm "plug_onboard_playback_left"
capture.pcm "plug_onboard_capture_left"
playback.pcm "plug_onboard_playback_right"
capture.pcm "plug_onboard_capture_right"
}
Jerry