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)
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to