5.1 digital sound

I am trying to get 5.1 digital surround audio working with MythTV. All of the guides/troubleshooting guides say start by making sure everything works outside of MythTV before trying to get sound working right in MythTv. Makes sense. I’ve got audio working outside of MythTV, however, I am having trouble getting 5.1 digital surround to work.

Here’s what I’ve got:

Video capture card: pcHDTV-5500 - audio out plugged into line-in jack on sound card
Sound card: Turtle Beach Santa Cruz (cs46xx) - digital output going from “versa jack” to Multi-channel input on receiver
All sound will be played through receiver
SUSE 11.1 64-bit with GNOME

After reading a bunch of stuff all over the net, I ensured that Pulse is disabled, and in fact, I removed all of it I could.

The user has been added to the “audio” group.

If I run speaker-test -c6 -Dplug:surround51 -twav it goes through all of the tests, but I only get audio from my two front speakers. If I play a DVD using VLC, all speakers work in Dolby Surround and DTS Surround.

I’ve got everything unmuted in alsamixer, and all volumes turned up to at least 79%.

More info: /etc/modprobe.d/sound

alias snd-card-0 snd-cs46xx
alias sound-slot-0 snd-cs46xx
options snd-cx46xx index=0
alias snd-card-1 cx88_alsa
options cx88_alsa index=1

lsmod output

Module                  Size  Used by
nls_iso8859_1           5352  1 
nls_cp437               7064  1 
vfat                   11864  1 
fat                    54376  1 vfat
sco                    12572  2 
bridge                 57288  1 
stp                     3020  1 bridge
bnep                   14664  2 
rfcomm                 42648  0 
l2cap                  24056  6 bnep,rfcomm
bluetooth              63652  6 sco,bnep,rfcomm,l2cap
udf                    78856  1 
crc_itu_t               2376  1 udf
binfmt_misc            10260  1 
snd_pcm_oss            48896  0 
snd_mixer_oss          16808  1 snd_pcm_oss
snd_seq_midi            8400  0 
snd_seq_midi_event      8328  1 snd_seq_midi
snd_seq                61968  2 snd_seq_midi,snd_seq_midi_event
ipv6                  293608  26 
fuse                   61088  3 
loop                   17924  0 
lgdt330x                9404  1 
cx88_dvb               18300  0 
cx88_vp3054_i2c         3112  1 cx88_dvb
videobuf_dvb            5644  1 cx88_dvb
dvb_core               87948  3 lgdt330x,cx88_dvb,videobuf_dvb
dv1394                 18840  0 
raw1394                25240  0 
tuner_simple           14100  2 
tuner_types            17544  1 tuner_simple
snd_cs46xx             96152  1 
tda9887                11164  2 
tda8290                14956  0 
gameport               13640  2 snd_cs46xx
snd_rawmidi            26768  2 snd_seq_midi,snd_cs46xx
snd_seq_device          8604  3 snd_seq_midi,snd_seq,snd_rawmidi
tuner                  26220  0 
cx8800                 35604  0 
cx88_alsa              13296  0 
snd_ac97_codec        122648  1 snd_cs46xx
cx8802                 17740  1 cx88_dvb
rtc_cmos               13960  0 
cx88xx                 72184  4 cx88_dvb,cx8800,cx88_alsa,cx8802
ac97_bus                2232  1 snd_ac97_codec
rtc_core               22420  1 rtc_cmos
rtc_lib                 3560  1 rtc_core
pcspkr                  3064  0 
snd_pcm                95440  4 snd_pcm_oss,snd_cs46xx,cx88_alsa,snd_ac97_codec
compat_ioctl32          8536  1 cx8800
ir_common              43340  1 cx88xx
k8temp                  5352  0 
snd_timer              26664  2 snd_seq,snd_pcm
videodev               35328  4 tuner,cx8800,cx88xx,compat_ioctl32
i2c_algo_bit            7004  2 cx88_vp3054_i2c,cx88xx
snd                    74632  13 snd_pcm_oss,snd_mixer_oss,snd_seq_midi,snd_seq,snd_cs46xx,snd_rawmidi,snd_seq_device,cx88_alsa,snd_ac97_codec,snd_pcm,snd_timer
tveeprom               13708  1 cx88xx
v4l1_compat            14220  1 videodev
isp1760                20776  0 
v4l2_common            12600  2 tuner,cx8800
soundcore               8816  1 snd
ohci1394               31380  1 dv1394
videobuf_dma_sg        14332  5 cx88_dvb,cx8800,cx88_alsa,cx8802,cx88xx
usb_storage           101072  1 
snd_page_alloc          9816  2 snd_cs46xx,snd_pcm
btcx_risc               5136  4 cx8800,cx88_alsa,cx8802,cx88xx
ftdi_sio               55328  0 
videobuf_core          20748  5 videobuf_dvb,cx8800,cx8802,cx88xx,videobuf_dma_sg
ieee1394               98880  3 dv1394,raw1394,ohci1394
button                  8328  0 
sr_mod                 16196  1 
cdrom                  36200  1 sr_mod
nvidia               7836472  26 
forcedeth              60312  0 
i2c_nforce2             8624  0 
i2c_core               35280  12 lgdt330x,cx88_vp3054_i2c,tuner_simple,tda9887,tda8290,tuner,cx88xx,i2c_algo_bit,tveeprom,v4l2_common,nvidia,i2c_nforce2
usbserial              35520  1 ftdi_sio
sg                     35344  0 
usbhid                 52896  0 
hid                    41568  1 usbhid
ff_memless              8912  1 usbhid
linear                  5144  0 
sd_mod                 35064  7 
crc_t10dif              2152  1 sd_mod
ohci_hcd               36548  0 
ehci_hcd               55348  0 
usbcore               198656  8 isp1760,usb_storage,ftdi_sio,usbserial,usbhid,ohci_hcd,ehci_hcd
dm_snapshot            17992  0 
edd                    10272  0 
dm_mod                 73952  13 dm_snapshot
ext3                  141912  6 
mbcache                10412  1 ext3
jbd                    68824  1 ext3
fan                     6016  0 
ide_pci_generic         4652  0 
amd74xx                 7152  0 
ide_core              118012  2 ide_pci_generic,amd74xx
ata_generic             6044  0 
pata_amd               13692  1 
sata_nv                26480  4 
libata                183376  3 ata_generic,pata_amd,sata_nv
scsi_mod              179144  5 usb_storage,sr_mod,sg,sd_mod,libata
dock                   14564  1 libata
thermal                24232  0 
processor              49904  1 thermal
thermal_sys            14336  3 fan,thermal,processor
hwmon                   4040  2 k8temp,thermal_sys

I ran alsaconf and got an error message:

Shutting down sound driverERROR: Module snd_pcm is in use by cx88_alsa
ERROR: Module snd_timer is in use by snd_pcm
ERROR: Module snd is in use by cx88_alsa,snd_pcm,snd_timer
ERROR: Module snd_page_alloc is in use by snd_pcm
                                                                     failed
Starting sound driver:  cs46xx                                       done

aplay -L output

default:CARD=CS46xx
    Sound Fusion CS46xx, CS46xx
    Default Audio Device
front:CARD=CS46xx,DEV=0
    Sound Fusion CS46xx, CS46xx
    Front speakers
surround40:CARD=CS46xx,DEV=0
    Sound Fusion CS46xx, CS46xx
    4.0 Surround output to Front and Rear speakers
surround41:CARD=CS46xx,DEV=0
    Sound Fusion CS46xx, CS46xx
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=CS46xx,DEV=0
    Sound Fusion CS46xx, CS46xx
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=CS46xx,DEV=0
    Sound Fusion CS46xx, CS46xx
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=CX8801
    Conexant CX8801, CX88 Digital
    Default Audio Device

/etc/asound.state

state.CX8801 {
	control.1 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		comment.dbmin -6300
		comment.dbmax 0
		iface MIXER
		name 'Playback Volume'
		value.0 63
		value.1 63
	}
	control.2 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Playback Switch'
		value true
	}
	control.3 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Capture Switch'
		value true
	}
}

/etc/asound.state continued

state.CS46xx {
	control.1 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Master Playback Switch'
		value true
	}
	control.2 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		comment.dbmin -9450
		comment.dbmax 0
		iface MIXER
		name 'Master Playback Volume'
		value.0 45
		value.1 45
	}
	control.3 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Headphone Playback Switch'
		value true
	}
	control.4 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -4650
		comment.dbmax 0
		iface MIXER
		name 'Headphone Playback Volume'
		value.0 22
		value.1 22
	}
	control.5 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Master Mono Playback Switch'
		value true
	}
	control.6 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		comment.dbmin -4650
		comment.dbmax 0
		iface MIXER
		name 'Master Mono Playback Volume'
		value 0
	}
	control.7 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'PC Speaker Playback Switch'
		value true
	}
	control.8 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 15'
		comment.dbmin -4500
		comment.dbmax 0
		iface MIXER
		name 'PC Speaker Playback Volume'
		value 8
	}
	control.9 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Phone Playback Switch'
		value true
	}
	control.10 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Phone Playback Volume'
		value 0
	}
	control.11 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mic Playback Switch'
		value true
	}
	control.12 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Mic Playback Volume'
		value 0
	}
	control.13 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mic Boost (+20dB)'
		value true
	}
	control.14 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Line Playback Switch'
		value true
	}
	control.15 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Line Playback Volume'
		value.0 22
		value.1 22
	}
	control.16 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'CD Playback Switch'
		value true
	}
	control.17 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'CD Playback Volume'
		value.0 22
		value.1 22
	}
	control.18 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Video Playback Switch'
		value true
	}
	control.19 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Video Playback Volume'
		value.0 22
		value.1 22
	}
	control.20 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Aux Playback Switch'
		value true
	}
	control.21 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Aux Playback Volume'
		value.0 22
		value.1 22
	}
	control.22 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'PCM Playback Switch'
		value true
	}
	control.23 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'PCM Playback Volume'
		value.0 22
		value.1 22
	}
	control.24 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 2
		comment.item.0 Mic
		comment.item.1 CD
		comment.item.2 Video
		comment.item.3 Aux
		comment.item.4 Line
		comment.item.5 Mix
		comment.item.6 'Mix Mono'
		comment.item.7 Phone
		iface MIXER
		name 'Capture Source'
		value.0 Aux
		value.1 Aux
	}
	control.25 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Capture Switch'
		value false
	}
	control.26 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 15'
		comment.dbmin 0
		comment.dbmax 2250
		iface MIXER
		name 'Capture Volume'
		value.0 15
		value.1 15
	}
	control.27 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name '3D Control - Switch'
		value true
	}
	control.28 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 Mix
		comment.item.1 Mic
		iface MIXER
		name 'Mono Output Select'
		value Mix
	}
	control.29 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 Mic1
		comment.item.1 Mic2
		iface MIXER
		name 'Mic Select'
		value Mic1
	}
	control.30 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 15'
		iface MIXER
		name '3D Control - Center'
		value 10
	}
	control.31 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 15'
		iface MIXER
		name '3D Control - Depth'
		value 0
	}
	control.32 {
		comment.access read
		comment.type IEC958
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
	}
	control.33 {
		comment.access read
		comment.type IEC958
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value cf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
	}
	control.34 {
		comment.access 'read write'
		comment.type IEC958
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Default'
		value '0082000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
	}
	control.35 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Switch'
		value true
	}
	control.36 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'External Amplifier'
		value true
	}
	control.37 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Master Playback Switch'
		index 1
		value true
	}
	control.38 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		comment.dbmin -9450
		comment.dbmax 0
		iface MIXER
		name 'Master Playback Volume'
		index 1
		value.0 45
		value.1 45
	}
	control.39 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Center Playback Switch'
		index 1
		value true
	}
	control.40 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 63'
		comment.dbmin -9450
		comment.dbmax 0
		iface MIXER
		name 'Center Playback Volume'
		index 1
		value 45
	}
	control.41 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'LFE Playback Switch'
		index 1
		value true
	}
	control.42 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 63'
		comment.dbmin -9450
		comment.dbmax 0
		iface MIXER
		name 'LFE Playback Volume'
		index 1
		value 45
	}
	control.43 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 2
		iface MIXER
		name 'Surround Playback Switch'
		index 1
		value.0 true
		value.1 true
	}
	control.44 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		comment.dbmin -9450
		comment.dbmax 0
		iface MIXER
		name 'Surround Playback Volume'
		index 1
		value.0 45
		value.1 45
	}

      	control.45 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mic Playback Switch'
		index 1
		value true
	}
	control.46 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Mic Playback Volume'
		index 1
		value 0
	}
	control.47 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mic Boost (+20dB)'
		index 1
		value true
	}
	control.48 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Line Playback Switch'
		index 1
		value true
	}
	control.49 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Line Playback Volume'
		index 1
		value.0 0
		value.1 0
	}
	control.50 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'CD Playback Switch'
		index 1
		value true
	}
	control.51 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'CD Playback Volume'
		index 1
		value.0 0
		value.1 0
	}
	control.52 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Aux Playback Switch'
		index 1
		value true
	}
	control.53 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'Aux Playback Volume'
		index 1
		value.0 0
		value.1 0
	}
	control.54 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'PCM Playback Switch'
		index 1
		value true
	}
	control.55 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 31'
		comment.dbmin -3450
		comment.dbmax 1200
		iface MIXER
		name 'PCM Playback Volume'
		index 1
		value.0 22
		value.1 22
	}
	control.56 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 2
		comment.item.0 Mic
		comment.item.1 CD
		comment.item.2 Video
		comment.item.3 Aux
		comment.item.4 Line
		comment.item.5 Mix
		comment.item.6 'Mix Mono'
		comment.item.7 Phone
		iface MIXER
		name 'Capture Source'
		index 1
		value.0 Mic
		value.1 Mic
	}
	control.57 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Capture Switch'
		index 1
		value true
	}
	control.58 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 15'
		comment.dbmin 0
		comment.dbmax 2250
		iface MIXER
		name 'Capture Volume'
		index 1
		value.0 0
		value.1 0
	}
	control.59 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 1
		comment.item.0 'pre 3D'
		comment.item.1 'post 3D'
		iface MIXER
		name 'PCM Out Path & Mute'
		index 1
		value 'pre 3D'
	}
	control.60 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name '3D Control - Switch'
		index 1
		value true
	}
	control.61 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 15'
		iface MIXER
		name '3D Control - Center'
		index 1
		value 0
	}
	control.62 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 1
		comment.range '0 - 15'
		iface MIXER
		name '3D Control - Depth'
		index 1
		value 0
	}
	control.63 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 32767'
		iface MIXER
		name 'DAC Volume'
		value.0 23596
		value.1 23596
	}
	control.64 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 32767'
		iface MIXER
		name 'ADC Volume'
		value.0 23597
		value.1 23597
	}
	control.65 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'ADC Capture Switch'
		value false
	}
	control.66 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'DAC Capture Switch'
		value false
	}
	control.67 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'IEC958 Output Switch'
		value true
	}
	control.68 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'IEC958 Input Switch'
		value true
	}
	control.69 {
		comment.access 'read write'
		comment.type IEC958
		comment.count 1
		iface PCM
		device 2
		name 'IEC958 Playback Default'
		value '0000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
	}
	control.70 {
		comment.access read
		comment.type IEC958
		comment.count 1
		iface PCM
		device 2
		name 'IEC958 Playback Mask'
		value ffff00ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
	}
	control.71 {
		comment.access 'read write'
		comment.type IEC958
		comment.count 1
		iface PCM
		device 2
		name 'IEC958 Playback PCM Stream'
		value '0082000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
	}
}

lspci : grep audio output

05:08.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] (rev 01)

I do not have 5.1 hardware, so I can not pass on any experience. Unfortunately the openSUSE users who do have 5.1 working have not written a wiki nor how-to.

Here is a link to a thread of a user who managed to get this working with pulse audio:
sound card, surround 5.1 not working in opensuse 11.1 - openSUSE Forums

If it were me, and if I had this hardware, and if I was stumped on this, I would go on an IRC chat channel (install the program “xchat”) on freenode, IRC #alsa and ask the guru’s there for help. One may need to ask 1/2 to 1 dozen times, at different times of the day, before one finds a guru who can help.

Great idea. I’ll try that.

speaker-test does not do digital output, so it will never work. It will only work if you have your outputs hooked up analog (front speaker out to front speakers, rear speaker out to rear speakers, etc.)

I had thought it might be possible to configure the speaker test to check digital audio. But I do not know the details, since I do not use digital hardware. You could google on this and see if that is the case.

I did find confirmation that this is the case. speaker-test does not work with digital output.