[Alsa-user] Can't get spdif working with ALSA and FC6 on ECS L4S5MG/651+ motherboard
Brought to you by:
perex
From: Rob F. <rkf...@gm...> - 2007-03-06 21:34:55
|
Hi, I have tried just about everything that I can think of in order to get the SPDIF port on my motherboard to work. I am putting together a MythTV box and so I would like digital audio with AC3 passthrough to work for surround sound from DVD's and HDTV content. The spdif output works fine under Windows (I have a dual boot setup), and so I am highly confident that the hardware is working. I currently have the spdif output hooked into the spdif coax input of a Sony Dream System. The analog sound is working fine under linux, and so I believe that the sound card is being detected properly. The audio device on my motherboard is a SiS7012 chipset which is supposed to be supported by the intel8x0 ALSA driver, and as far as I can tell it is configured correctly in the kernel and modprobe.conf, but I am not an expert in drivers and kernel level stuff so I don't know. The thing that is most puzzling to me is that when I run aslamixer, I don't see an IEC958 device or a spdif device. This makes me wonder if for some reason the ALSA driver doesn't recognize the spdif port on the motherboard (BTW the motherboard just has a spdif header on it and I built a backplate for the case with a spdif coax plug on it.) When I first loaded Windows it didn't recognize the spdif port either. I had to get a more up to date driver from SiS before I could get the spdif port working. I have included as much information as I can think of below in hopes that someone here can figure out what I am missing. Thanks, Rob Here is a list of some of the things that I have tried: I tried running alsaconf as suggested on several sites, but as far as I can tell it is not installed on my system (can't find it with a locate alsaconf), and it is not included in any of the FC6 rpms (including alsa-utils). I guess I could compile ALSA from scratch, but I don't want to go to the trouble unless there aren't any other good options left. I have tried to follow all of the advice on the following web pages: http://alsa.opensrc.org/DigitalOut http://www.mythtv.org/wiki/index.php/Configuring_Digital_Sound http://www.mythtv.org/wiki/index.php/Configuring_Digital_Sound_with_AC3_and_SPDIF And when I try to run "aplay -D" I get the following errors: # aplay -D spdif /usr/share/sounds/KDE_Startup.wav aplay: main:550: audio open error: Device or resource busy # aplay -D hw:0,0 /usr/share/sounds/KDE_Startup.wav aplay: main:550: audio open error: Device or resource busy # aplay -D hw:spdif /usr/share/sounds/KDE_Startup.wav ALSA lib pcm_hw.c:1357:(_snd_pcm_hw_open) Invalid value for card aplay: main:550: audio open error: No such device # aplay -D plug:spdif /usr/share/sounds/KDE_Startup.wav aplay: main:550: audio open error: Device or resource busy # aplay -D ALSA:spdif /usr/share/sounds/KDE_Startup.wav ALSA lib pcm.c:2143:(snd_pcm_open_noupdate) Unknown PCM ALSA:spdif aplay: main:550: audio open error: No such file or directory If I don't use the -D (or I use default) everything works as it should (except I only get stereo output from the line out/headphone jack): # aplay -D default /usr/share/sounds/KDE_Startup.wav Playing WAVE '/usr/share/sounds/KDE_Startup.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono # aplay /usr/share/sounds/KDE_Startup.wav Playing WAVE '/usr/share/sounds/KDE_Startup.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono If I use the ~/.asoundrc from http://www.mythtv.org/wiki/index.php/Configuring_Digital_Sound, I get the following error: $ aplay -D default /usr/share/sounds/KDE_Startup.wav ALSA lib pcm_dmix.c:864:(snd_pcm_dmix_open) unable to open slave aplay: main:550: audio open error: Permission denied And if I use the /etc/asound.conf from http://www.mythtv.org/wiki/index.php/Configuring_Digital_Sound_with_AC3_and_SPDIFI get this error: # aplay /usr/share/sounds/KDE_Startup.wav aplay: main:550: audio open error: Device or resource busy Here is the result of aplay -l and aplay -L: # aplay -l **** List of PLAYBACK Hardware Devices **** card 0: SI7012 [SiS SI7012], device 0: Intel ICH [SiS SI7012] Subdevices: 0/1 Subdevice #0: subdevice #0 # aplay -L PCM list: hw { @args.0 CARD @args.1 DEV @args.2 SUBDEV @args.CARD { type string default { @func getenv vars { 0 ALSA_PCM_CARD 1 ALSA_CARD } default { @func refer name 'defaults.pcm.card' } } } @args.DEV { type integer default { @func igetenv vars { 0 ALSA_PCM_DEVICE } default { @func refer name 'defaults.pcm.device' } } } @args.SUBDEV { type integer default { @func refer name 'defaults.pcm.subdevice' } } type hw card $CARD device $DEV subdevice $SUBDEV } plughw { @args.0 CARD @args.1 DEV @args.2 SUBDEV @args.CARD { type string default { @func getenv vars { 0 ALSA_PCM_CARD 1 ALSA_CARD } default { @func refer name 'defaults.pcm.card' } } } @args.DEV { type integer default { @func igetenv vars { 0 ALSA_PCM_DEVICE } default { @func refer name 'defaults.pcm.device' } } } @args.SUBDEV { type integer default { @func refer name 'defaults.pcm.subdevice' } } type plug slave.pcm { type hw card $CARD device $DEV subdevice $SUBDEV } } plug { @args.0 SLAVE @args.SLAVE { type string } type plug slave.pcm $SLAVE } shm { @args.0 SOCKET @args.1 PCM @args.SOCKET { type string } @args.PCM { type string } type shm server $SOCKET pcm $PCM } tee { @args.0 SLAVE @args.1 FILE @args.2 FORMAT @args.SLAVE { type string } @args.FILE { type string } @args.FORMAT { type string default raw } type file slave.pcm $SLAVE file $FILE format $FORMAT } file { @args.0 FILE @args.1 FORMAT @args.FILE { type string } @args.FORMAT { type string default raw } type file slave.pcm null file $FILE format $FORMAT } null { type null } cards 'cards.pcm' front 'cards.pcm.front' rear 'cards.pcm.rear' center_lfe 'cards.pcm.center_lfe' side 'cards.pcm.side' surround40 'cards.pcm.surround40' surround41 'cards.pcm.surround41' surround50 'cards.pcm.surround50' surround51 'cards.pcm.surround51' surround71 'cards.pcm.surround71' iec958 'cards.pcm.iec958' spdif 'cards.pcm.iec958' modem 'cards.pcm.modem' phoneline 'cards.pcm.phoneline' default 'cards.pcm.default' dmix 'cards.pcm.dmix' dsnoop 'cards.pcm.dsnoop' And finally here is the output from the aadebug.sh script from the ALSA wiki: ALSA Audio Debug v0.1.0 - Fri Mar 2 08:42:43 MST 2007 http://alsa.opensrc.org/aadebug http://www.gnu.org/licenses/gpl.txt Kernel ---------------------------------------------------- Linux yoda.localdomain 2.6.19-1.2911.fc6 #1 SMP Sat Feb 10 15:51:47 EST 2007 i686 i686 i386 GNU/Linux Loaded Modules -------------------------------------------- snd_intel8x0 34332 4 snd_ac97_codec 101540 1 snd_intel8x0 snd_ac97_bus 6593 1 snd_ac97_codec snd_seq_dummy 7428 0 snd_seq_oss 36736 0 snd_seq_midi_event 11136 1 snd_seq_oss snd_seq 54000 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event snd_pcm_oss 44288 0 snd_mixer_oss 19584 1 snd_pcm_oss snd_pcm 78468 4 snd_intel8x0,snd_ac97_codec,snd_pcm_oss snd_timer 23812 3 snd_seq,snd_pcm snd_page_alloc 12168 2 snd_intel8x0,snd_pcm snd_mpu401 11560 0 snd_mpu401_uart 12032 1 snd_mpu401 snd_rawmidi 25856 1 snd_mpu401_uart snd_seq_device 11788 4 snd_seq_dummy,snd_seq_oss,snd_seq,snd_rawmidi snd 53892 19 snd_intel8x0,snd_ac97_codec,snd_seq_dummy,snd_seq_oss,snd_seq,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_mpu401,snd_mpu401_uart,snd_rawmidi,snd_seq_device Modprobe Conf --------------------------------------------- alias snd-card-0 snd-intel8x0 options snd-card-0 index=0 options snd-intel8x0 index=0 remove snd-intel8x0 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0 alias snd-card-1 snd-mpu401 options snd-card-1 index=1 options snd-mpu401 index=1 remove snd-mpu401 { /usr/sbin/alsactl store 1 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-mpu401 Proc Asound ----------------------------------------------- Advanced Linux Sound Architecture Driver Version 1.0.14rc2. Compiled on Feb 14 2007 for kernel 2.6.19-1.2911.fc6 (SMP). 0 [SI7012 ]: ICH - SiS SI7012 SiS SI7012 with CMI9738 at irq 22 1 [UART ]: MPU-401 UART - MPU-401 UART MPU-401 UART at 0x330, irq 10 0: [ 0] : control 1: : sequencer 16: [ 0- 0]: digital audio playback 24: [ 0- 0]: digital audio capture 25: [ 0- 1]: digital audio capture 32: [ 1] : control 33: : timer 40: [ 1- 0]: raw midi cat: /proc/asound/hwdep: No such file or directory 00-01: Intel ICH - MIC ADC : SiS SI7012 - MIC ADC : capture 1 00-00: Intel ICH : SiS SI7012 : playback 1 : capture 1 Client info cur clients : 3 peak clients : 3 max clients : 192 Client 0 : "System" [Kernel] Port 0 : "Timer" (Rwe-) Port 1 : "Announce" (R-e-) Connecting To: 15:0 Client 14 : "Midi Through" [Kernel] Port 0 : "Midi Through Port-0" (RWe-) Client 15 : "OSS sequencer" [Kernel] Port 0 : "Receiver" (-we-) Connected From: 0:1 Client 20 : "MPU-401 UART" [Kernel] Port 0 : "MPU-401 UART MIDI" (RWeX) Dev Snd --------------------------------------------------- controlC0 controlC1 midi1 midiC1D0 pcmC0D0c pcmC0D0p pcmC0D1c seq timer CPU ------------------------------------------------------- model name : Intel(R) Pentium(R) 4 CPU 2.53GHz cpu MHz : 2523.189 RAM ------------------------------------------------------- MemTotal: 514728 kB SwapTotal: 1052248 kB Hardware -------------------------------------------------- 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 651 Host (rev 02) 00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] AC'97 Sound Controller (rev a0) 00:0b.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11) 00:0b.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11) And here is the output of lspci. (BTW, just in case you are wondering yes there is a Bt878 video capture card in the computer, but I haven't bothered testing it out yet since I have a HDHomerun (http://www.silicondust.com) that I am using for video capture.) 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 651 Host (rev 02) 00:01.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP) 00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS962 [MuTIOL Media IO] (rev 14) 00:02.3 FireWire (IEEE 1394): Silicon Integrated Systems [SiS] FireWire Controller 00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] 00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] AC'97 Sound Controller (rev a0) 00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f) 00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f) 00:03.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f) 00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller 00:0a.0 Communication controller: Agere Systems LT WinModem (rev 02) 00:0b.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11) 00:0b.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11) 00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 MX 440] (rev a3) |