Sound – Fix HDMI Sound Card Detection Issues

drivershdminvidiasound

Mainly, the sound only heard in the computer and not on TV, I have no problems with the video, it works correctly.

Ubuntu never detect my sound card hdmi.

commands:

aplay -l

results:

**** Lista de PLAYBACK dispositivos hardware ****
tarjeta 0: PCH [HDA Intel PCH], dispositivo 0: ALC269VB Analog [ALC269VB Analog]
Subdispositivos: 1/1
Subdispositivo #0: subdevice #0

I try installing sound drivers using the following commands but still without success.

sudo add-apt-repository ppa:ubuntu-audio-dev/alsa-daily
sudo apt-get update
sudo apt-get install oem-audio-hda-daily-dkms

I try to detect my sound card hdmi with the following commands but still without success. (Source).

commands:

echo "Sound cards recognized by the system:"; lspci -nn | grep --color=none '\[04[80][13]\]'; echo "Sound cards recognized by ALSA:"; lspci -nn | grep '\[04[80][13]\]' | while read line; do lspci -nnk | grep -A 3 '\[04[80][13]\]' | grep -e 'Kernel modules: ..*' -e '\[04[80][13]\]' | grep --color=none -F "$line"; done; echo "Sound cards recognized by ALSA, and activated:"; lspci -nn | grep '\[04[80][13]\]' | while read line; do lspci -nnk | grep -A 3 '\[04[80][13]\]' | grep -e 'Kernel drivers in use: ..*' -e '\[04[80][13]\]' | grep --color=none -F "$line"; done

results:

Sound cards recognized by the system:
00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 05)
Sound cards recognized by ALSA:
00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 05)
Sound cards recognized by ALSA, and activated:
00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 05)

So I decided to install another video driver for Nvidia in "Additional Drivers".

After installing "NVIDIA binary driver – version 346.59 from nvidia-346 (proprietary, tested)" when starting Ubuntu me the following message:

ACPI PPC Probe failed.
Starting version 219

And I still do not detect my sound card HDMI.

Can anyone help me, please?

Thank you for your attention.

Update 13/07/2015

commands:

lspci

results:

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b5)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation HM67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 525M] (rev a1)
02:00.0 Network controller: Intel Corporation Centrino Wireless-N 1030 [Rainbow Peak] (rev 34)
03:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

commands:

sudo lspci -H1

results:

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b5)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation HM67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 525M] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)
02:00.0 Network controller: Intel Corporation Centrino Wireless-N 1030 [Rainbow Peak] (rev 34)
03:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

Best Answer

Do you notice how the output of lspci -H1 contains a line that isn't there in lspci:

01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)

That's your hdmi audio chip. What is going wrong is that Linux hasn't detected the card properly and thus didn't load the driver. The good news is that the chip is powered and thus we can trick Linux to try detecting it again. The steps you need to follow depend on the driver you are using: nvidia or nouveau.

Warning: if something goes wrong, this will cause a kernel panic and might cause problems with rebooting, though those can be resolved with rebooting multiple times; waiting 2 minutes before turning your laptop back on; and temporarily removing the power source and battery.

Nouveau

  1. The first step is to make sure that the GPU is not in use by a driver. Run lsmod | grep nouveau. If it outputs a line starting with nouveau and ending with a number larger than 0 it is in use. One possible method is to stop X (so either print this out or have a different machine you can read this on):

    • Press ctrl+alt+f1
    • Run runlevel and write down the number (in my pc it is 5).
    • Login as root: sudo su
    • Run init 3 where 3 is a number smaller than the number you just wrote down, but at as big as 1.
    • Run lsmod | grep nouveau again to make sure that the nouveau driver is no longer in use (there should either be no output; no line starting with nouveau; or the line starting with nouveau ends with 0).
  2. As a sanity check, make sure that the GPU and its audio chip are powered:

    • Run lspci -H1 | grep 01:00. It should output two lines.
    • Run lsmod | grep nouveau again to make sure that the nouveau driver is still not in use.
  3. Now that the GPU is powered without a driver we're going to 'remove' it:

    • Run echo 1 > /sys/bus/pci/devices/0000\:01\:00.0/remove (if the GPU still had a driver loaded/in use, this causes a kernel panic).
    • Redetect the GPU and also its audio chip by running echo 1 > /sys/bus/pci/rescan.
    • Run lspci | grep 01:00.1. If that outputs anything, congratulations! Your linux is now aware of your GPU audio chip.
  4. Get X running with the nouveau GPU.

    • Run init 5 with 5 being the number you wrote down after running runlevel. You should now see X starting again (otherwise try pressing ctrl+alt+f7).
    • If you run aplay -l, now it should output the HDMI outputs (on my pc there are 4 outputs, and only 1 works).

NVidia

  1. The first step is to make sure that the GPU is not in use by a driver. As you're using the nvidia driver, you must also be using prime.

    • Run prime-select query.
    • If it outputs nvidia, you can disable the driver by running sudo prime-select intel and rebooting.
    • If it outputs unknown then the previous step might also work, but will also break your bumblebee setup.
  2. As a sanity check, make sure that the GPU and its audio chip are powered:

    • Login as root: sudo su
    • Run lspci -H1 | grep 01:00. It should output two lines.
    • If the first line ends with (rev ff), you need to power your GPU by running echo ON > /proc/acpi/bbswitch.
    • If the second line is missing, that means that the GPU audio chip is no longer powered. You can try suspending your laptop; resume it again; and check again whether the GPU audio chip is powered (I hope that works for you, otherwise you're out of luck, like me).
    • Run lsmod | grep nvidia again to make sure that the nvidia driver is still not in use.
  3. Now that the GPU is powered without a driver we're going to 'remove' it:

    • Run echo 1 > /sys/bus/pci/devices/0000\:01\:00.0/remove (if the GPU still had a driver loaded/in use, this causes a kernel panic).
    • Redetect the GPU and also its audio chip by running echo 1 > /sys/bus/pci/rescan.
    • Run lspci | grep 01:00.1. If that outputs anything, congratulations! Your linux is now aware of your GPU audio chip.
  4. Get X running with the nvidia GPU.

    • Run prime-select. If it outputs intel, run prime-select nvidia.
    • Logout and back in again.
    • If you run aplay -l now it should output the HDMI outputs (on my pc there are 4 outputs, and only 1 works).

Btw. this bug has already been reported on launchpad: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1377653?comments=all

Related Question