does not detect my sound card HDMI

12,080

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

Share:
12,080

Related videos on Youtube

Admin
Author by

Admin

Updated on September 18, 2022

Comments

  • Admin
    Admin over 1 year

    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)
    
    • bcmpinc
      bcmpinc almost 9 years
      Can you give the output of lspci and the output of sudo lspci -H1?
    • Admin
      Admin over 8 years
      @bcmpinc Hi, sorry for taking so much, here are the results.
  • Admin
    Admin almost 9 years
    doesn't work for me, ubuntu don't detect my hdmi.
  • Admin
    Admin almost 9 years
    doesn't work for me, ubuntu don't detect my hdmi.
  • Admin
    Admin over 8 years
    Hi, I am using nouveau, had problems in step 3, the first was, cat: /proc/acpi/bbswitch: No such file or directory, and the second was, lspci -H1 | grep 01:00.1, doesn't display me nothing, what can I do ? I don't have luck :(
  • bcmpinc
    bcmpinc over 8 years
    Ok, I though you we're using nvidia. Did you manage to completely uninstall the nvidia driver? I.e. lsmod | grep nvidia doen't output anything. With nouveau it becomes a lot easier as step 1 should work, so you can skip step 2. I've updated step 3. You can also try the method I described here: bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1377653/…‌​.
  • bcmpinc
    bcmpinc over 8 years
    I've now splitted the answer depending on the driver you're using. If the nouveau method doesn't work and you're able to properly suspend and resume your laptop you can also try installing the nvidia driver and try that method.
  • Admin
    Admin over 8 years
    All good, is working, but had a problem with the following command: alsa reload and alsa force-reload, he tells me: (failed: modules still loaded: snd-hda-codec-hdmi snd-hda-codec-realtek snd-hda-codec-generic snd-hda-intel snd-hda-controller snd-hda-codec snd-hwdep snd-pcm snd-timer), and when I reboot, I lose all my settings.
  • bcmpinc
    bcmpinc over 8 years
    I never noticed that, but you're right. I guess alsa reload doesn't do anything then. Did you still need to restart pulse? If not, I'll remove that last step.
  • Admin
    Admin over 8 years
    I don't need restart pulse-audio :), there is not ways to keep the settings permanently? (when I reboot, I lose everything I did).
  • bcmpinc
    bcmpinc over 8 years
    No, unfortunately you have to repeat these steps every time you reboot. Though you can create a script to automate this. And possibly also add it to the boot sequence to run just before the login screen is started (though I've no experience with this).
  • xealits
    xealits over 4 years
    Unfortunately, this advice got me into troubles: linux hanged at pci rescan, after a hard reset it surprisingly returned to normal, and grep lspci showed nvidia audiocontroller as expected, then setting prime-select nvidia it booted with no image on the screen (just a black screen), a hard reset after that and the boot log shows a successful filesystem recovery, but then the kernel goes into a panic. I guess I should have tried just to install the nouveau driver.