Audio card Intel Tiger Lake

Sorry for another thread about this audio card, it doesn't work under FreeBSD 14.2, I've tried everything. Output dmesg | grep pcm:
Code:
<Intel Tiger Lake (HDMI/DP 8ch)> at nid 4 on hdaa0
Maybe someone can tell me how to compile the required driver from the source? It's not in the ports. Thanks.
 
cat /dev/sndstat

You might need to enable the correct output.


Maybe someone can tell me how to compile the required driver from the source?
The snd_hda(4) driver is included with the kernel, compiling it from source won't make a difference.
 
Well, that's the problem, this sound card doesn't work with this driver. Do you think it's not the driver?
 
I have the exact same card and it works perfectly under 14.2, as it were also under 14.1 FWIW. Are you sure you selected as the active mixer? Because in my case it was not and I had to add in
/etc/sysctl.conf:
hw.snd.default_unit=2
 
I have the exact same card and it works perfectly under 14.2, as it were also under 14.1 FWIW. Are you sure you selected as the active mixer? Because in my case it was not and I had to add in
/etc/sysctl.conf:
hw.snd.default_unit=2
Thanks, I tried it, it didn't help.
 
It's interesting that I used to have Debian12 and the card didn't work either, but clicks were heard, but now there's complete silence.

I only have one mixer, /dev/mixer0 on pcm0, and it is used by default.
 
cat /dev/sndstat

You might need to enable the correct output.



The snd_hda(4) driver is included with the kernel, compiling it from source won't make a difference.
For some reason it seems to me that the snd_hda driver simply does not support my specific video card.
/dev/sndstat
Code:
Installed devices:
pcm0: <Intel Tiger Lake (HDMI/DP 8ch)> (play) default
No devices installed from userspace.

PulseAudio outputs:
pacmd list-cards
Code:
0 card(s) available.

pacmd list-sinks
Code:
1 sink(s) available.
  * index: 0
    name: <oss_output.dsp0>
    driver: <module-oss.c>
    flags: HARDWARE HW_VOLUME_CTRL LATENCY 
    state: SUSPENDED
    suspend cause: IDLE
    priority: 0
    volume: front-left: 65536 / 100%,   front-right: 65536 / 100%
            balance 0.00
    base volume: 65536 / 100%
    volume steps: 101
    muted: no
    current latency: 0.00 ms
    max request: 16 KiB
    max rewind: 0 KiB
    monitor source: 0
    sample spec: s16le 2ch 44100Hz
    channel map: front-left,front-right
                 Stereo
    used by: 0
    linked by: 0
    fixed latency: 92.88 ms
    module: 6
    properties:
        device.string = "/dev/dsp0"
        device.api = "oss"
        device.description = "0 - Intel Tiger Lake (HDMI/DP 8ch)"
        device.access_mode = "mmap"
        device.buffering.buffer_size = "16384"
        device.buffering.fragment_size = "4096"
        device.icon_name = "audio-card"
 
Perhaps a device ID needs to be added for support. pciconf -lv | grep -B3 multimedia will show the ID.

See Bug 272682 Adds support for Tiger Lake-H HD Audio Controller and src - FreeBSD source tree hda: add support for Tiger Lake-H
pciconf -lv | grep -B3 multimedia
Code:
hdac0@pci0:0:31:3:    class=0x040100 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0c8 subvendor=0x152d subdevice=0x1301

In the bug report I found that my ID 0xa0c8 was already added to the hdac.h header file.

I added the line
hint.hdaa.0.nid4.config="as=1 seq=1 device=Line-out"
to the /boot/device.hints but it didn't help.
 
where and how to add it? (I understand that instead of 0x43c8 I will write my ID :))
If the device ID is not listed, it must be added, not replaced.

Before editing source files, please show us the output of pciconf -lv | grep -B3 multimedia first.
 
If the device ID is not listed, it must be added, not replaced.

Before editing source files, please show us the output of pciconf -lv | grep -B3 multimedia first.
Code:
hdac0@pci0:0:31:3:    class=0x040100 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0c8 subvendor=0x152d subdevice=0x1301
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Smart Sound Technology Audio Controller'
    class      = multimedia

So I understand that the source files were edited by the developer, after which the module was recompiled? Or should I make the changes myself? If so, where and how exactly?

In the bug report I found that my ID 0xa0c8 was already added to the hdac.h header file.

1.png
 
So I understand that the source files were edited by the developer, after which the module was recompiled? Or should I make the changes myself? If so, where and how exactly?
Nothing else is required on your part as the device is already listed and therefore apparently supported.
In the bug report I found that my ID 0xa0c8 was already added to the hdac.h header file.

pcm0: <Intel Tiger Lake (HDMI/DP 8ch)> (play) default
What device is the HDMI cable connected to? Does this device have a volume control?
 
I didn't quite understand what cable you were talking about. If you're talking about the HDMI port on the laptop, nothing is connected to it. The audio card is inside the laptop case and I don't know how exactly it's connected.

In the MATE graphical shell that I use, there is, of course, an applet for adjusting the volume; the volume can also be adjusted from the command line using mixer.

I also tried the command mplayer -ao oss myfile.wav
The player displays that the file is playing, but there is no sound.
 
I didn't quite understand what cable you were talking about. If you're talking about the HDMI port on the laptop, nothing is connected to it. The audio card is inside the laptop case
Seeing only pcm0: Intel Tiger Lake (HDMI/DP 8ch) (play) default I assumed sound over HDMI is the issue.

Which brand and model is the laptop?

Has it maybe a setting in BIOS/UEFI to turn audio controller on/off ?

When cat /dev/sndstat returns only the HDMI port, perhaps the sound card is defect, especially since it isn't functional on Linux/Debian as well.

cat /dev/sndstat should print all sound devices. Here from a ThinkPad E15:
Code:
% cat /dev/sndstat
Installed devices:
pcm0: <ATI R6xx (HDMI)> (play)
pcm1: <ATI R6xx (HDMI)> (play)
pcm2: <ATI R6xx (HDMI)> (play)
pcm3: <Realtek ALC257 (Analog 2.0+HP/2.0)> (play/rec) default
pcm4: <Realtek ALC257 (Right Analog Mic)> (rec)
No devices installed from userspace.

Code:
 # pciconf -vl | grep -B3 multimedia
hdac0@pci0:4:0:1:    class=0x040300 rev=0x00 hdr=0x00 vendor=0x1002 device=0x1637 subvendor=0x17aa subdevice=0x5097
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'Renoir Radeon High Definition Audio Controller'
    class      = multimedia

hdac1@pci0:4:0:6:    class=0x040300 rev=0x00 hdr=0x00 vendor=0x1022 device=0x15e3 subvendor=0x17aa subdevice=0x5097
    vendor     = 'Advanced Micro Devices, Inc. [AMD]'
    device     = 'Family 17h/19h HD Audio Controller'
    class      = multimedia
hdac0 HDMI
hdac1 Analog
 
Laptop: Huawei MateBook D14 NbD-WDH9 [53013ERM] Mystic

In UEFI audio is enabled, of course. Yes, I am also inclined to think it is a hardware failure, but in Debian there were clicks, and here there is complete silence.

cat /dev/sndstat
Code:
Installed devices:
pcm0: <Intel Tiger Lake (HDMI/DP 8ch)> (play) default
No devices installed from userspace.

The last sentence confuses me. It turns out that the devices are installed, but not in the userspace? I don't understand what this means.
 
It looks like your card has some problems ora at leaset FreeBSD does not recognize it. As another user noted, your system is reporting only HDMI audio, which is routed to an external device, i.e. a monitor. My system shows:

Code:
┬─[fmc000@tu45b-freebsd:~]─[17:30:31]
╰─>$ cat /dev/sndstat
Installed devices:
pcm0: <Realtek ALC269 (Internal Analog)> (play/rec)
pcm1: <Realtek ALC269 (Right Analog)> (play/rec)
pcm2: <Intel Tiger Lake (HDMI/DP 8ch)> (play) default
pcm3: <Sennheiser Sennheiser SC60 for Lync> (play/rec)
No devices installed from userspace.
┬─[fmc000@tu45b-freebsd:~]─[17:33:40]
╰─>$

The last sentence can be ignored. As you see my pcm2 is identical to your pcm0 and it's my default device, as I route all audio to an external monitor when connected.
 
Thank you, great, but it's completely unclear whether anything can be done about this :)
I'm not a kernel programmer but I believe that the issue is that your card is "rebranded" with a subvendor ID. Your cards shows up as:

Code:
hdac0@pci0:0:31:3:    class=0x040100 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0c8 subvendor=0x152d subdevice=0x1301

and 0x152d is "Quanta Computer Inc." according to https://volglicey1.narod.ru/comdcomp/vendors.htm . Mine instead is a "Genuine Intel":

Code:
┬─[fmc000@tu45b-freebsd:~]─[19:27:30]
╰─>$ pciconf -lv | grep -B3 multimedia
hdac0@pci0:0:31:3:    class=0x040300 rev=0x20 hdr=0x00 vendor=0x8086 device=0xa0c8 subvendor=0x8086 subdevice=0x7270
    vendor     = 'Intel Corporation'
    device     = 'Tiger Lake-LP Smart Sound Technology Audio Controller'
    class      = multimedia
┬─[fmc000@tu45b-freebsd:~]─[19:27:31]
╰─>$

and maybe this is relevant. Also "class" and "subdevice" are different.
 
Interesting idea, but what to do with it? Is there any way to make the card work?

But in general, the driver header file hdac.h only indicates the device code; the vendor code is not mentioned anywhere, it seems.

So it turns out that the supplier reflashed the card, which made it non-functional? This is very strange.
 
Back
Top