ALSA is still flaky with HDA codecs. I've already spent nearly a week trying to get vt1708b HDA to fully work but it still won't play nicely. Is the HDA hardware defective? How can it be defective when it's fully working in WinXP?
Device in question: VIA VT1708B High Definition Audio (Class: 0403, VID/PID: 1106,3288)
With alsa 1.0.16, vt1708b is detected and audio ouput can be heard but volume mixers are not working. Not even the pcm mixer is available. Alsamixer/amixer will not load, giving an error everytime. I grabbed alsa 1.0.20 and made a full set of binaries. Alas, the same still happens with alsa 1.0.20. Tinkering with Alsa sources led me to believe that something's not right during driver initialization.
Unable to tinker deeper into alsa, I review what my bottomline is. Well, the vt1708b is detected and audio does gets through. So, my current bottomline is to have at least a working volume mixer control. Ok, I tinker a little bit here and a little bit there and stumbled on an occasion when an extra pcm slider suddenly pops out in sGmixer. Yes, yes, finally some progress.
Let's cut short and just see how to get that volume mixer working shall we ?
0. Pre-requisite: Of course, first setup audio with alsaconf (Alsa sound wizard). A reboot may be required to have a normalized set of hda modules loaded.
1. Open a terminal and do :
Code: Select all
# cat /proc/asound/card0/oss_mixer
Code: Select all
...
SYNTH "" 0
PCM "" 0
SPEAKER "" 0
LINE "Line" 0
...
...
#v406 comment out, have restored aliases in /etc/modprobe.conf... v407 back in... v411 properly back in...
aplay /usr/share/audio/bark.au
modprobe snd-mixer-oss
modprobe snd-seq-oss
modprobe snd-pcm-oss
...
(I don't know why. Playing an audio before loading oss mixer emulation layer enables the pcm mixer.)
4. Reboot. (It's possible not to reboot but then its a much more lengthy tale)
5. Open a terminal and do :
Code: Select all
# cat /proc/asound/card0/oss_mixer
Code: Select all
...
SYNTH "" 0
PCM "PCM" 0
SPEAKER "" 0
LINE "Line" 0
...
Code: Select all
# echo 'VOLUME "PCM" 0' > /proc/asound/card0/oss_mixer
8. Right click on the systray volume mixer applet. This opens sGmixer and you should get a Volume slider and Pcm slider control. They're the same thing but, the absvolume systray applet uses Volume slider control exclusively.
9. Test it by playing an audio file while adjusting the volume slider.
10. If you want it to be set automatically, create a script in your /root/Startup folder and put in the echo command in step 5 or place it in rc.services after modprobe snd-pcm-oss. Remember to mark 'em script file executable.
Sample mixer mapping script:
Code: Select all
#!/bin/sh
echo 'VOLUME "PCM" 0' > /proc/asound/card0/oss_mixer
Ok, what if one insists on having full mixer controls?
Currently, the only fully working (with some minor known issues) audio driver for VT1708B HDA is OSSv4.1 ... I recommend installing OSSv4.1 if you absolutely must have full mixer controls for this device. A full range of controls is available. A virtual master volume mixer, separate volume mixers for each channel (7.1 channels anyone?) and a bunch of other stuffs will be at your disposal. The price for such an install would be the inconvenience of installing it from source and reconfiguring the systray with oss volume mixer. Alsa only apps will still work by using the alsa's library plugins (except for alsa mixer controls).
Yeah, a few would be asking, isn't OSS a commercial product? Yes and no. There's now a GPL version available and the one I tested (OSSv4.1 GPL) does everything I wanted so far ...
I'll re-visit alsa drivers/controls again sometime in the future when I have more time to tinker with it ...
Rgds