[LE 10/11/12] HP Elite Mini 800 G6 : No HDMI audio ouput (ALSA / HDA known issue)

  • Hi to everybody,:D

    First I would say English is not my native language but I think it will do the trick.

    I am facing the ALSA-HDA-Intel-Linux hdmi audio bug on a HP Elite Mini 800 G6 NUC and I can't fix it by my own. I am a real nut on Linux use because I only work on Microsoft Servers since 10 years. So my knowledge of Linux & his kernels is really near 0 !

    But I use Kodi since many years and I needed a media center so I tried LE.

    I made a lot of search and I already followed this entire topic : RE: No audio on a mini PC

    Tried to install Ubuntu, install alsa-tools & alsa-tools-gui and ran hdajackretask , and after reboot HDMI audio was shown and work.

    So I've copied out the hda files in /lib/firmware and /etc/modprobe.d to the /storage/.config/firmware and /storage/.config/modprobe.d respectively. like boostedvtak did in his LibreELEC. After that for him HDMI audio works on LE but for me HDMI audio is not shown and doesn't work.

    I've found here https://github.com/clearlinux/distribution/issues/2396 that a "quirk" must be added to force pin connectivity but as I don't know Linux I don't understand if this "quirk" has to be implemented in the kernel by the kernel admins or if it's a thing I must do ?

    I tried to install LE 10, LE 11, and LE 12 and no way to get HDMI audio. If I don't fix it I will have to leave LE and install Kodi on Ubuntu directly.

    I know it's a tricky issue but if someone can help me I would be really grateful :).

  • Please provide a full debug log.

    How to post a log (wiki)

    1. Enable debugging in Settings>System Settings>Logging
    2. Restart Kodi
    3. Replicate the problem
    4. Generate a log URL (do not post/upload logs to the forum)

    use "Settings > LibreELEC > System > Paste system logs" or run "pastekodi" over SSH, then post the URL link
  • You can force the quirk with:

    Code
    echo 'options snd_hda_codec_hdmi enable_all_pins=1' >/storage/.config/modprobe.d/snd_hdmi_all_pins.conf
  • Yeah ! Your magic onliner fixed it. HDMI is now shown in the audio list and HDMI audio works.

    KODIBOX:~ # aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: PCH [HDA Intel PCH], device 0: ALC222 Analog [ALC222 Analog]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [SONY TV *30]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
    card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
    Subdevices: 1/1
    Subdevice #0: subdevice #0

    I want to really thank you because you saved me a lot of time !

  • The next step is to figure out the kernel patch required so that you (and anyone else that ever tries to run some Linux distro on the same hardware) doesn't require hours of Googling and workarounds.

  • Diff
    --- a/sound/pci/hda/patch_hdmi.c
    +++ b/sound/pci/hda/patch_hdmi.c
    @@ -1996,6 +1996,7 @@ static const struct snd_pci_quirk force_connect_list[] = {
            SND_PCI_QUIRK(0x1043, 0x86ae, "ASUS", 1),  /* Z170 PRO */
            SND_PCI_QUIRK(0x1043, 0x86c7, "ASUS", 1),  /* Z170M PLUS */
            SND_PCI_QUIRK(0x1462, 0xec94, "MS-7C94", 1),
    +       SND_PCI_QUIRK(0x8086, 0x06c8, "HP", 1), /* Elite Mini 800 G6 */
            SND_PCI_QUIRK(0x8086, 0x2060, "Intel NUC5CPYB", 1),
            SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", 1),
            {}

    If anyone can build a test image (I'm not able to build things where I am) .. that ^ kernel patch should do it?

    If you can confirm yes, I'll upstream the patch to the kernel.