LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   ALSA: VIA VT8237 SPDIF output not working or inaccessible (https://www.linuxquestions.org/questions/linux-hardware-18/alsa-via-vt8237-spdif-output-not-working-or-inaccessible-440615/)

darisd 05-01-2006 02:56 PM

ALSA: VIA VT8237 SPDIF output not working or inaccessible
 
Hi all. I am a newbie to linux multimedia, but have four years experience with Apache servers, so excuse my partial ignorance to the world of alsa and drivers. Here is the summary of my sitch: I am trying to build out a MythTV box on FC5 and have here an ABIT AV8 mb with the VIA VT8237 chipset. Inside this chipset somewhere is a Realtek ALC658D chip (all of this according to alsamixer). Thus far, I have the "standard" left/right 1/8 inch jack output providing sound, but I cannot get sound out to my stereo reciever through the SPDIF port. This output is not satisfactory: I need SPDIF out. Period.

That is the general situation. Here are the specifics.

The optical cable has been checked with a known-good cable. I know the input jack on the reciever works, and it autodetects SPDIF format perfectly (tested with two different sources).

I have installed the most recent (as of a week ago) ALSA driver from source, according to the instructions for the snd-via82xx subdriver (sorry i would post the URL but the forum won't let me yet). However, I am stuck after this step in those instructions:

Code:

# modprobe snd-via82xx;modprobe snd-pcm-oss;modprobe snd-mixer-oss;modprobe snd-seq-oss
I should expect that now I can go into alsamixer, unmute the "IEC958P" channel (which I have done) and have sound. This is not the case. As a test, I have plugged in a "standard" left/right set of pc speakers, and they work fine with a test sound and the GNOME cd player. HOWEVER... I cannot find a way to mute this standard output! This last point may be important, as some people have had to mute the analog output to get their SPDIF jacks work (on other motherboards, not this one).

Here is the list of hardware devices produced by aplay:

Code:

# aplay -l

**** List of PLAYBACK HArdware Devices ****
card 0: V8237 [VIA 8237], device 0: VIA 8237 [VIA 8237]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 0: V8237 [VIA 8237], device 1: VIA 8237 [VIA 8237]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

(question: why the heck are there two cards when there is one onboard chip?)

After that diagnostic step, I tried forcing aplay to use specific hardware addresses, as I read in another post here. Using the output of aplay -l as above, here is what I see:

Code:

# aplay /media/english.au
Playing Sparc Audio '/media/english.au' : Mu-Law, Rate 8000 Hz, Mono
# aplay -D hw:0,0 /media/english.au
Playing Sparc Audio '/media/english.au' : Mu-Law, Rate 8000 Hz, Mono
aplay: set_params:901: Sample format not available
# aplay -D hw:0,1 /media/english.au
Playing Sparc Audio '/media/english.au' : Mu-Law, Rate 8000 Hz, Mono
aplay: set_params:901: Sample format not available

So that is where I am stuck. I cannot get to the next step, from what I understand, which is to configure .asoundrc with aliases and specifics that MythTV will use, because I do not know what hardware address the SPDIF output is.

Additional Information:

lspci:
Code:

# lspci
...
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
...

(looks good)

modprobe.conf:
Code:

alias eth0 via-velocity
alias eth1 tulip
alias scsi_hostadapter sata_via
alias snd-card-0 snd-via82xx
options snd-card-0 index=0
options snd-via82xx index=0
remove snd-via82xx { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : : }; /sbin/modprobe -r --ignore-remove snd-via82xx

(that last line is gibberish to me, seems like it is removing a driver and then ignoring the remove? I think it was added by the last step in the alsa driver install)

Any help at all would be greatly appreciated. Thanks.

maroonbaboon 05-01-2006 09:09 PM

Don't you have to set something in the BIOS to get SPDIF output?

darisd 05-02-2006 01:21 AM

Quote:

Don't you have to set something in the BIOS to get SPDIF output?
There is only the option to enable the encoder on the entire chip, which has been enabled. There is no specific setting for the SPDIF jacks.

I am still playing around with the "aplayer -D hw:x,x" problem above. If anyone has hints with the problem I am seeing with that above, they would be appreciated :)

maroonbaboon 05-02-2006 02:20 AM

Have you tried all the suggestions in http://alsa.opensrc.org/DigitalOut ?

darisd 05-02-2006 01:00 PM

Awesome! My problem was with the test file I was using. The "english.au" was encoded in "MU LAW". I found a wav file and it worked like a charm.

If anyone else runs into this problem, and you do not have internet connectivity and cannot get a wav file to save your life, and all you have is a CD, do this:

1: For the user you are logged in as, create an ".asoundrc" file in the /home/$user directory.
2: Add this:
Code:

pcm.!default {
        type hw
        card <the card number you want to test>
        device <the device number you want to test>
}

3: Save, now open a cd player in X (not sure how to do this command line) and press play. Since .asoundrc is read real-time you do not have to restart anything.
4: If no sound, incriment the device or the card, until you have sound.

Thanks again maroon! Cheers!

Jayes 05-03-2006 09:38 AM

"why the heck are there two cards when there is one onboard chip?"

Because one is the analog output and the other is the spdif output - HW:0,0 and HW:0,1 respectively. This also answers your question about spdif. HW:0,0 is the default, so set your asoundrc file to HW:0,1 and you will have digital output.

darisd 05-04-2006 02:39 AM

Quote:

Originally Posted by Jayes
... set your asoundrc file to HW:0,1 and you will have digital output.

Yeah, that was exactly what worked for me. It's been working like a champ for the past day.


All times are GMT -5. The time now is 04:13 AM.