We recently experimented with SteamOS, but had all sorts of weird issues with sound, both on-board and via HDMI. We couldn't seem to get SteamOS to play sound in the desktop AND Steam AND Games. Yep, it's in Beta. I definitely despise pulseaudio, and Valve's configuration of Debian was a bit freaky. So we did the usual: Installed Slackware64 14.1 x86_64 multilib.
Since we wanted sound via the Nvidia GT430 HDMI to the 1080p TV, we disabled the on board sound in the BIOS. HDMI sound worked OOTB, but only for one application at a time. With Steam in Big Picture Mode (BPM), the Steam interface hogged the audio so that the games did not have sound. On my Slackware desktop I don't use BPM and have an Audigy sound card set up, so multiple audio streams were never a problem. After some googling and LQ sifting, we came up with a simple base configuration for ALSA in Slackware that allows desktop audio AND BPM games. There are a few other configurations out there, but this one was simplest and best for us (so far). YMMV. This is an informational post to assist others in similar situations.
Hardware:
Code:
# lspci |grep -i nvidia
Password:
01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 430] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)
$ uname -a
Linux vapor 3.10.17 #1 SMP Wed Oct 23 16:28:33 CDT 2013 x86_64 Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz GenuineIntel GNU/Linux
Alsa ouput:
Code:
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
$ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
hdmi:CARD=NVidia,DEV=0
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
HDA NVidia, HDMI 0
HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
HDA NVidia, HDMI 0
HDMI Audio Output
All you then need is to have you user in the 'audio' group and this ~/.asoundrc
Code:
$ cat .asoundrc
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type asym
playback.pcm {
type dmix
ipc_key 5678912
ipc_perm 0660
ipc_gid audio
slave {
channels 2
pcm {
type hw
card 0
device 9
}
period_size 1024
buffer_size 8192
}
bindings {
0 0
1 1
}
}
capture.pcm "hw:0"
}
use something like
Code:
$ speaker-test -Dplughw:0,3 -c2 -twav
to find the active HDMI channel. Ours was card=0, device=9. No fiddling with /etc/alsa/ or /etc/modprobe.d/ is required. Further customizations are possible to "fine tune" this configuration. For example, you may want to map 5.1 or 7.1 surround output if you have such a speaker system set up. We have it set up for simple stereo (2 channel) output and we let ALSA figure out the bit rate and format.
Enjoy.
References:
http://www.alsa-project.org/alsa-doc...m_plugins.htmlhttp://www.alsa-project.org/alsa-doc...m_plugins.html
https://wiki.gentoo.org/wiki/ALSAhttps://wiki.gentoo.org/wiki/ALSA
http://docs.slackware.com/
and various LQ and XMBC posts.
Acknowledgements:
volkerdi, Best Linux Distribution IMHO.
alienBOB, multilib and steam packages.
Slackbuilds.org
Slackware contributors