mfaine |
10-17-2010 06:07 PM |
A sound solution for sound in Ubuntu
I'm an experienced seasoned Linux professional and yet even I am constantly annoyed by never ending issue with the state of sound in Linux. I have a Zotac Mag box that I'm trying desperately to use as a Linux HTPC but I can't ever seem to get the sound working consistently and completely. It is very embarrassing and frustrating to have visitors state very clearly "You wouldn't be having this problem if you'd just use Windows". What makes it worse is that I know they are correct. I am a Linux advocate, I am not concern trolling. I am a die-hard, open-source, free-software, zealot but I'm really frustrated and upset that no one is even willing to admit there is a problem and even worse, some get offended for pointing out any deficiencies in Linux.
If anyone can please point me to definitive documentation, or a guide that can assure fool-proof, perfectly working sound, please do so before I am forced to look at alternatives.
My sound is inconsistent, generally working in some appliations but not in others. I have more luck with digital sound input and output than with analog (dtv). mplayer is the most consistent application that works most of the time but sound in gnome and boxee and mythtv and generally anything else is hit-and-miss. There is a 2-3 second delay for any sound output which makes desktop sounds very inconsistent. I've been fighting this battle for months and I'm not sure there is a solution.
Code:
Ubuntu 10.10
mark@htpc:~$ uname -a
Linux htpc.localdomain 2.6.35-22-generic #34-Ubuntu SMP Sun Oct 10 09:24:00 UTC 2010 i686 GNU/Linux
Code:
aplay mark@htpc:~$ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
pulse
Playback/recording through the PulseAudio sound server
default
hdmi-remap
remap-surround71
hdmi:CARD=NVidia,DEV=0
HDA NVidia, NVIDIA HDMI
HDMI Audio Output
dmix:CARD=NVidia,DEV=3
HDA NVidia, NVIDIA HDMI
Direct sample mixing device
dsnoop:CARD=NVidia,DEV=3
HDA NVidia, NVIDIA HDMI
Direct sample snooping device
hw:CARD=NVidia,DEV=3
HDA NVidia, NVIDIA HDMI
Direct hardware device without any conversions
plughw:CARD=NVidia,DEV=3
HDA NVidia, NVIDIA HDMI
Hardware device with all software conversions
Code:
mark@htpc:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
Code:
mark@htpc:~$ lspci
00:00.0 Host bridge: nVidia Corporation MCP79 Host Bridge (rev b1)
00:00.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
00:03.0 ISA bridge: nVidia Corporation MCP79 LPC Bridge (rev b2)
00:03.1 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
00:03.2 SMBus: nVidia Corporation MCP79 SMBus (rev b1)
00:03.3 RAM memory: nVidia Corporation MCP79 Memory Controller (rev b1)
00:03.5 Co-processor: nVidia Corporation MCP79 Co-processor (rev b1)
00:04.0 USB Controller: nVidia Corporation MCP79 OHCI USB 1.1 Controller (rev b1)
00:04.1 USB Controller: nVidia Corporation MCP79 EHCI USB 2.0 Controller (rev b1)
00:06.0 USB Controller: nVidia Corporation MCP79 OHCI USB 1.1 Controller (rev b1)
00:06.1 USB Controller: nVidia Corporation MCP79 EHCI USB 2.0 Controller (rev b1)
00:08.0 Audio device: nVidia Corporation MCP79 High Definition Audio (rev b1)
00:09.0 PCI bridge: nVidia Corporation MCP79 PCI Bridge (rev b1)
00:0a.0 Ethernet controller: nVidia Corporation MCP79 Ethernet (rev b1)
00:0b.0 IDE interface: nVidia Corporation MCP79 SATA Controller (rev b1)
00:0c.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:10.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:15.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:16.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:17.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
00:18.0 PCI bridge: nVidia Corporation MCP79 PCI Express Bridge (rev b1)
03:00.0 VGA compatible controller: nVidia Corporation ION VGA (rev b1)
04:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Code:
mark@htpc:~$ lsmod
Module Size Used by
binfmt_misc 6599 1
parport_pc 26058 0
ppdev 5556 0
snd_usb_audio 86704 2
snd_usbmidi_lib 17413 1 snd_usb_audio
ir_lirc_codec 3092 3
lirc_dev 9393 1 ir_lirc_codec
ir_sony_decoder 1889 0
ir_jvc_decoder 1950 0
ir_rc6_decoder 2334 0
ir_rc5_decoder 1950 0
nvidia 9329739 100
tuner 20578 1
au8522 16289 2
snd_hda_codec_nvhdmi 12879 1
arc4 1165 2
ath9k 88756 0
snd_hda_intel 22107 0
ath9k_common 5982 1 ath9k
snd_hda_codec 87552 2 snd_hda_codec_nvhdmi,snd_hda_intel
ath9k_hw 292297 2 ath9k,ath9k_common
ath 8153 2 ath9k,ath9k_hw
mac80211 231541 2 ath9k,ath9k_common
snd_hwdep 5040 2 snd_usb_audio,snd_hda_codec
snd_pcm 71475 3 snd_usb_audio,snd_hda_intel,snd_hda_codec
snd_seq_midi 4588 0
snd_rawmidi 17783 2 snd_usbmidi_lib,snd_seq_midi
snd_seq_midi_event 6047 1 snd_seq_midi
snd_seq 47174 2 snd_seq_midi,snd_seq_midi_event
snd_timer 19067 2 snd_pcm,snd_seq
rc_rc6_mce 1146 0
mceusb 11494 0
snd_seq_device 5744 3 snd_seq_midi,snd_rawmidi,snd_seq
ir_nec_decoder 2014 0
au0828 32905 0
dvb_core 88505 1 au0828
v4l2_common 17329 3 tuner,au8522,au0828
psmouse 59033 0
ir_core 14654 9 ir_lirc_codec,ir_sony_decoder,ir_jvc_decoder,ir_rc6_decoder,ir_rc5_decoder,rc_rc6_mce,ir_nec_decoder,mceusb
snd 49006 14 snd_usb_audio,snd_usbmidi_lib,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
cfg80211 144470 4 ath9k,ath9k_common,ath,mac80211
videodev 43098 4 tuner,au8522,au0828,v4l2_common
v4l1_compat 13359 1 videodev
videobuf_vmalloc 4619 1 au0828
serio_raw 4022 0
videobuf_core 16907 2 au0828,videobuf_vmalloc
joydev 8735 1
led_class 2633 1 ath9k
tveeprom 11178 1 au0828
shpchp 29886 0
soundcore 880 1 snd
snd_page_alloc 7120 2 snd_hda_intel,snd_pcm
agpgart 32011 1 nvidia
i2c_nforce2 5179 0
xc5000 11623 2
lp 7342 0
parport 31492 3 parport_pc,ppdev,lp
usb_storage 40172 1
usbhid 36882 0
hid 67742 1 usbhid
ahci 19013 0
forcedeth 49433 0
libahci 21667 5 ahci
Code:
mark@htpc:~$ cat ~/.asoundrc
pcm.!hdmi-remap {
type asym
playback.pcm {
type plug
slave.pcm "remap-surround71"
}
}
pcm.!remap-surround71 {
type route
slave.pcm "hw:0,3"
ttable {
0.0= 1 # front left
1.1= 1 # front right
2.6= 1 # rear left
3.7= 1 # rear right
4.2= 1 # center
5.3= 1 # lfe
6.4= 1 # side left
7.5= 1 # side right
}
}
|