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