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_SPDIF I 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@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-user