I have an Asus Zenith II Extreme here on Debian Sid (unstable) since april. I'm also having issues with sound. I got analog sound to work after I installed, but had no luck with digital sound. And analog sound support is also kinda flaky, loosing it's configuration after restart from time to time, or needing to switch profiles until some sound finds its way to the output again.
My system is using ALSA and PulseAudio, I'm slowly learning about how those intertwine and it looks like the setup is pretty complex, between multiple hardware devices and complex setup to actually be able to support those configs. From what I see, the complexity comes from front and back output, hot plug of headphones and then analog and digital output.
For output, I use a Logitech Z906 5.1 system, that has analog and SPDIF input. And a button to switch between analog input or digital input. (Evidently, when I forget to switch the input during testing, there is no sound coming out of the speaker, which adds fun and confusion...).
I also have a USB webcam that appears as a USB device, that I currently use as a microphone for videoconferences.
I'll describe here what I learned and how to do some stuff, maybe it can help some people along and then they can help me to progress further... I might have miss-understood some stuff, in which case, I'd be happy to learn, all help is welcome!
The main issues I'm having right now are these:
- No digital sound output with PulseAudio.
- At system start, sound output on jacks at the back of the motherboard is muted.
- no sound input through MB
Layout of the system and preliminary setup
From Asus' website, it seems to use two main chips and probably some additional stuff:
- Supreme FX S1220 Codec: this is the Realtek chip that brought me here, I think
- ESS SABRE9018Q2C High Definition DAC
- another chip to switch impedance sensing between front and back panel ?
I also had an snd_hda_intel driver loaded, but I determined that this one got loaded because of my NVIDIA graphics card, to provide sound output over HDMI to a connected screen with sound system, with:
Code:
lsmod | grep snd
Code:
pactl list
As I don't use this, I disabled it by creating a file in /etc/modprobe.d/sound.conf
Code:
-# disable snd_hda_intel that seems to be loading NVidia HDMI output as sound card -install snd_hda_intel /bin/false -options snd-usb-audio enable=1 index=2 -options snd-usb-audio enable=1 index=1 -options snd-usb-audio enable=1 index=0
The second part is to reorder the audio devices to have the two USB devices from the motherboard as alsa card 0 and 1, and alsa card 2 is the USB webcam. Not sure this is the best syntax, maybe it could also be one line of
Code:
options snd-usb-audio enable=1 index=2,1,0
I hoped this would get my machine to use the usual device as default, but nope...
ALSA and PulsesAudio
Now, we have the basic setup, with cards appearing in ALSA (low level kernel interface, can't really mix sound output from multiple sources), and PulseAudio siting on top of ALSA, to show an API to applications and seamlessly mix streams of sound coming from different sources. To add some confusion, some applications talk directly to ALSA, which would block all output of sound from other apps. To avoid this, ALSA also presents a device that is the "alsa.pulse" plugin, that presents a sound card that redirects sound to PulseAudio for mixing before doing the output. You might see a PulseAudio device in alsamixer, which appears without a number and as "default" for me in alsamixer.
So from my understanding, first thing is to check if low level sound detects what's needed, with ALSA, and then go one layer above with PulseAudio.
ALSA
My alsa PLAYBACK cards appear this way (you can see the capture cards with arecord -l, I won't open that can of worms for now):
Code:
aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Audio [USB Audio], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Audio [USB Audio], device 1: USB Audio [USB Audio #1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Audio [USB Audio], device 3: USB Audio [USB Audio #3] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: Audio_1 [USB Audio], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0
The devices appear with:
Code:
aplay -L null Discard all samples (playback) or generate zero samples (capture) default Playback/recording through the PulseAudio sound server sysdefault Default Audio Device lavrate Rate Converter Plugin Using Libav/FFmpeg Library samplerate Rate Converter Plugin Using Samplerate Library speexrate Rate Converter Plugin Using Speex Resampler jack JACK Audio Connection Kit oss Open Sound System pulse PulseAudio Sound Server upmix Plugin for channel upmix (4,6,8) vdownmix Plugin for channel downmix (stereo) with a simple spacialization hw:CARD=Audio,DEV=0 USB Audio, USB Audio Direct hardware device without any conversions hw:CARD=Audio,DEV=1 USB Audio, USB Audio #1 Direct hardware device without any conversions hw:CARD=Audio,DEV=3 USB Audio, USB Audio #3 Direct hardware device without any conversions plughw:CARD=Audio,DEV=0 USB Audio, USB Audio Hardware device with all software conversions plughw:CARD=Audio,DEV=1 USB Audio, USB Audio #1 Hardware device with all software conversions plughw:CARD=Audio,DEV=3 USB Audio, USB Audio #3 Hardware device with all software conversions sysdefault:CARD=Audio USB Audio, USB Audio Default Audio Device front:CARD=Audio,DEV=0 USB Audio, USB Audio Front output / input surround21:CARD=Audio,DEV=0 USB Audio, USB Audio 2.1 Surround output to Front and Subwoofer speakers surround40:CARD=Audio,DEV=0 USB Audio, USB Audio 4.0 Surround output to Front and Rear speakers surround41:CARD=Audio,DEV=0 USB Audio, USB Audio 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=Audio,DEV=0 USB Audio, USB Audio 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=Audio,DEV=0 USB Audio, USB Audio 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=Audio,DEV=0 USB Audio, USB Audio 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=Audio,DEV=0 USB Audio, USB Audio IEC958 (S/PDIF) Digital Audio Output iec958:CARD=Audio,DEV=1 USB Audio, USB Audio #1 IEC958 (S/PDIF) Digital Audio Output dmix:CARD=Audio,DEV=0 USB Audio, USB Audio Direct sample mixing device dmix:CARD=Audio,DEV=1 USB Audio, USB Audio #1 Direct sample mixing device dmix:CARD=Audio,DEV=3 USB Audio, USB Audio #3 Direct sample mixing device usbstream:CARD=Audio USB Audio USB Stream Output hw:CARD=Audio_1,DEV=0 USB Audio, USB Audio Direct hardware device without any conversions plughw:CARD=Audio_1,DEV=0 USB Audio, USB Audio Hardware device with all software conversions sysdefault:CARD=Audio_1 USB Audio, USB Audio Default Audio Device front:CARD=Audio_1,DEV=0 USB Audio, USB Audio Front output / input surround21:CARD=Audio_1,DEV=0 USB Audio, USB Audio 2.1 Surround output to Front and Subwoofer speakers surround40:CARD=Audio_1,DEV=0 USB Audio, USB Audio 4.0 Surround output to Front and Rear speakers surround41:CARD=Audio_1,DEV=0 USB Audio, USB Audio 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=Audio_1,DEV=0 USB Audio, USB Audio 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=Audio_1,DEV=0 USB Audio, USB Audio 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=Audio_1,DEV=0 USB Audio, USB Audio 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=Audio_1,DEV=0 USB Audio, USB Audio IEC958 (S/PDIF) Digital Audio Output dmix:CARD=Audio_1,DEV=0 USB Audio, USB Audio Direct sample mixing device usbstream:CARD=Audio_1 USB Audio USB Stream Output usbstream:CARD=C920 HD Pro Webcam C920 USB Stream Output
From my understanding, alsa cards are physical cards, and devices are usually linked to physical outputs, and subdevices are mysterious things I don't have any of, so I don't know about that... There are also some plugins and other stuff appearing in there, so it's not directly clear what device belongs to what card. I think you need to match the card name and number from aplay -l to the card name and device number in aplay -L to have a combination of card and device numbers.
So my cards and devices are:
Alsa devices usually are talked to with a destination name of interface:card,device,subdevice. You can use this to test your output, with a wave file:
Code:
aplay -D <destination> <test wave file>
interface can be, between others:
- hw: directly send stream to hardware
- plughw: send stream to hardware with some adaptation
- anything from the aplay -L list (not clear about that one, discovered it while writing this)
- other stuff I don't know of
If you use hw and the sound file is not adapted to the bitrate of the output, you'll hear your sound played in a Donald Duck voice and receive a warning. plughw does the conversion for you.
So for me after on change, I tested this:
Code:
aplay -D plughw:0,0 test-mic.wav
Code:
aplay -D plughw:0,1 test-mic.wav
Code:
aplay -D plughw:0,3 test-mic.wav
Code:
aplay -D plughw:1,0 test-mic.wav
So from the ALSA and hardware point of view, DIGITAL OUTPUT WORKS
Alsa issue
When I start up, I have no sound playing on the analog output, though the volume is up in pulseaudio. If I look with alsamixer, I see that the volume of card 0 device 0 is set to zero and muted. This control does not appear in pulseaudio! If I output to the digital output, sound volume it works, but this one seems to show no volume control interface.
I tried different things: "alsa store" to store settings, get rid of the autostore file and disable the automatic settings storage on shutdown, for it to restart from fresh, but it still doesn't store my settings.
One interesting thing is that in alsamixerr, the devices appear with the names "Headphone front", "Headphone Rear", "Headphone Center", "Headphone Woofer", "Headphone Side". So I wonder if it thinks it's a headphone, and the jack is unplugged, so it sets the output volume to zero and mutes it.
There seem to be files in /usr/share/pulseaudio/alsa-mixer/paths/ that tell what behaviour to have on certain types of output, and if it should handle jack connection or not, but I haven't tested those. First trying to understand what makes it think this output is a headphone.
It also looks like there is some hardware on the board to do sensing of jack connection either on the front or the back connection, from waht I infer from ASUS' specs on the board web page, but it's pretty sparse in information.
Plugging a headphone in the front input doesn't seem to change anything.
If I increase the volume in alsaamixer and unmute, I get analog output. But this gets reset at each reboot.
PulseAudio
With sound coming out when I play directly from alsa, I can try to get it to work with PulseAudio. I usually use "pavucontrol" to try and manipulate PulseAudio.
In analog mode, I need to fiddle with the PulseAudio outputs and profiles and restart the sound playing to have it come out the loudspeaker.
I have two audio devices: the front panel output, and the backpanel output. And both appear as devices named "USB Audio" in pulseaudio, I can only distiguish them by their list of profiles.
When trying to select the digital output, I didn't manage to get any sound out of the device. (well sometimes some weird glitches, and some cases where it was playing stuff, but not sure if it was just telling me it was on the digital out and playing analog, and I don't remember exactly those cases, so maybe a fluke). As pulseaudio tries to automatise a lot of stuff, it seems to me like it's randomly changing configurations...
I'm now diging into console tools for pulseaudio, to try to get a clearer picture of how those pieces fit together between cards, outputs, devices, profiles and how those match ALSA's setup.
This post got pretty long, if you read down to here, thanks for reading this tedious brain dump. I hope it helps someone to get a bit further and we can solve our problem! I'll report back if I find something more.
Leave a comment: