I recently installed Arch linux after a period of working with windows. But i can't get audio to work over hdmi.
My Nvidia gtx660 ti is connected to a receiver with a hdmi cable. In the past the hdmi ports would show up as audio devices in alsa, but now they don't.
aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Generic [HD-Audio Generic], device 3: ALC887-VD Digital [ALC887-VD Digital] Subdevices: 1/1 Subdevice #0: subdevice #0
I do have replaced the motherboard a while ago, now i'm using a new AMD apu with an onboard Radeon gpu.
It is possible that the Nvidia gpu conflicts with de AMD gpu, but i disabled it in EFI.
I believe the audio devices aplay -l lists belong to the onboard realtek audio chip on the motherboard.
If i disable this audio chip in EFI aplay -l just shows no devices.
i'm currently using the proprietary Nvidia drivers, but i had the same problems using the nouveau video drivers.
lsmod | grep snd snd_hda_codec_realtek 47141 1 snd_hda_codec_generic 53860 1 snd_hda_codec_realtek snd_hda_intel 38728 2 snd_hda_codec 101816 3 snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel snd_hwdep 6396 1 snd_hda_codec snd_pcm 81607 2 snd_hda_codec,snd_hda_intel snd_timer 19038 1 snd_pcm snd 60086 11 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel soundcore 5551 1 snd
lspci -k 01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 660 Ti] (rev a1) Subsystem: ASUSTeK Computer Inc. Device 841e Kernel driver in use: nvidia Kernel modules: nouveau, nvidia 01:00.1 Audio device: NVIDIA Corporation GK104 HDMI Audio Controller (rev a1) Subsystem: ASUSTeK Computer Inc. Device 841e Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel
Maybe this is weird, that the audio device uses the intel kernel module. But maybe this is a common module for a lot of audio devices.
I couldn't really find an answer on the rest of this forum. A lot of other problems are about getting alsa to play to a specific hdmi port. I have the problem that the ports doesn't even show up.
I'm a bit stuck here.
added code tags
Last edited by oddish2211 (2014-05-04 14:07:36)
Use code tags. Do NVIdia cards still use snd_hda_codec_nvhdmi for HDMI or has this changed?
Last edited by emeres (2014-05-04 14:14:00)
Well, this document mentions that the snd_hda_codec_nvhdmi module has been replaced/renamed to snd_hda_codec_hdmi.
ftp://download.nvidia.com/XFree86/gpu-h … audio.html
If i manually load this module, hdmi and nvhdmi, using modprobe nothing happens.
Try loading the module specifying your card using vid and pid (lspci -nn).
I've tried with
modprobe snd_hda_codec_hdmi vendor=0x10de product=0x0e0a
but aplay -l still didn't show anything.
I did notice however that 'lspci -k' still showed 'snd_hda_intel' as the used driver, even with the snd_hda_codec_hdmi driver loaded.
01:00.1 Audio device: NVIDIA Corporation GK104 HDMI Audio Controller (rev a1) Subsystem: ASUSTeK Computer Inc. Device 841e Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel
Maybe there is an conflict?
If anything you should load snd-hda-intel with vid and pid, snd-hda-codec-hdmi depends on snd-hda-intel snd-hda-codec and is not in conflict with snd-hda-intel.
Last edited by emeres (2014-05-04 14:58:21)
If i run
modprobe snd_hda_intel vendor=0x10de product=0x0e0a
then this gets printed to the kernel log
[ 655.731520] snd_hda_intel: unknown parameter 'vendor' ignored [ 655.731527] snd_hda_intel: unknown parameter 'product' ignored [ 655.731856] hda_intel: Disabling MSI [ 655.731871] hda-intel 0000:01:00.1: Handle VGA-switcheroo audio client [ 656.739954] hda-intel 0000:01:00.1: Codec #0 probe error; disabling it...
I've tried vid, pid, vendor_id and product_id as parameters, none work. And if i issue modinfo on this module i can't really find a parameter that looks like vendor/product id.
The same happens if i try adding parameters to the loading of snd_hda_codec_hdmi.
Okay, i'm going to shout and hit my head against the wall.
after a few tries i remembered that PCI-E remapping using a IOMMU was quite buggy with videocards. I tried that about a year ago, i wanted to passthrough a gpu to a virtual machine. So i tried disabling the IOMMU in EFI, and guess what. Suddenly there are 4 hdmi outputs in alsa.
Thanks for the help!