Re: Anyone know how to get sound on a 12th Gen Alder Lake based laptop?

From: Milan Obuch <freebsd-multimedia_at_dino.sk>
Date: Sat, 13 Apr 2024 08:51:02 UTC
On Sat, 13 Apr 2024 01:14:28 -0700
Chris <bsd-lists@bsdforge.com> wrote:

> On 2024-04-12 23:04, Milan Obuch wrote:
> > On Fri, 12 Apr 2024 20:59:27 -0700
> > Chris <bsd-lists@bsdforge.com> wrote:
> >   
> >> I've read everything I can find on the subject. But have not been
> >> unable to produce sound on my Lenovo Ideapad 2. It's a 12th Gen
> >> Alder platform. Following are all the details. If anyone has had
> >> success, or knows how to get sound. Please share your info.
> >> 
> >> vendor     = 'Intel Corporation'
> >> device     = 'Alder Lake Innovation Platform Framework Processor
> >> Participant'
> >> 
> >> hdac0@pci0:0:31:3:	class=0x040380 rev=0x01 hdr=0x00
> >> vendor=0x8086 device=0x51c8 subvendor=0x17aa subdevice=0x3881
> >>      vendor     = 'Intel Corporation'
> >>      device     = 'Alder Lake PCH-P High Definition Audio
> >> Controller' class      = multimedia
> >>      subclass   = HDA
> >>      bar   [10] = type Memory, range 64, base 0x6001138000, size
> >> 16384, enabled
> >>      bar   [20] = type Memory, range 64, base 0x6001000000, size
> >> 1048576, enabled
> >> 
> >> pcm0: <Realtek ALC257 (Analog)> at nid 33 and 18 on hdaa0
> >> pcm0: Playback:
> >> pcm0:      Stream cap: 0x00000001 PCM
> >> pcm0:         PCM cap: 0x000e0060 16 20 24 bits, 44 48 KHz
> >> pcm0:             DAC: 2
> >> pcm0:
> >> pcm0:     nid=33 [pin: Headphones (Black Jack)]
> >> pcm0:       + <- nid=2 [audio output] [src: pcm]
> >> pcm0:
> >> pcm0: Record:
> >> pcm0:      Stream cap: 0x00000001 PCM
> >> pcm0:         PCM cap: 0x000e0560 16 20 24 bits, 44 48 96 192 KHz
> >> pcm0:             ADC: 7
> >> pcm0:
> >> pcm0:     nid=7 [audio input]
> >> pcm0:       + <- nid=36 [audio selector] [src: monitor]
> >> pcm0:              + <- nid=18 [pin: Mic (Fixed)] [src: monitor]
> >> pcm0:
> >> pcm0: Master Volume (OSS: vol): -65/0dB
> >> pcm0:    +- ctl  1 (nid   2 out):    -65/0dB (88 steps)
> >> pcm0:    +- ctl 14 (nid  33 in ):    mute
> >> pcm0:
> >> pcm0: PCM Volume (OSS: pcm): -65/0dB
> >> pcm0:    +- ctl  1 (nid   2 out):    -65/0dB (88 steps)
> >> pcm0:    +- ctl 14 (nid  33 in ):    mute
> >> pcm0:
> >> pcm0: Microphone2 Volume (OSS: monitor): 0/30dB
> >> pcm0:    +- ctl  3 (nid   7 in   0): -17/30dB (64 steps) + mute
> >> pcm0:    +- ctl  6 (nid  18 out):    0/30dB (4 steps)
> >> pcm0:
> >> pcm0: Recording Level (OSS: rec): -17/30dB
> >> pcm0:    +- ctl  3 (nid   7 in   0): -17/30dB (64 steps) + mute
> >> pcm0:    +- ctl  6 (nid  18 out):    0/30dB (4 steps)
> >> pcm0:
> >> pcm0: Mixer "vol":
> >> pcm0: Mixer "pcm":
> >> pcm0: Mixer "speaker":
> >> pcm0: Mixer "rec":
> >> pcm0: Mixer "ogain":
> >> pcm0: Mixer "monitor":
> >> pcm0: Playback channel set is: Front Left, Front Right,
> >> pcm0: Playback channel matrix is: 2.0 (disconnected)
> >> pcm0: Automatically set rec source to: monitor
> >> pcm0: Recording channel set is: Front Left, Front Right,
> >> pcm0: Recording channel matrix is: 2.0 (unknown)
> >> pcm1: <Realtek ALC257 (Right Analog Mic)> at nid 25 on hdaa0
> >> pcm1: Record:
> >> pcm1:      Stream cap: 0x00000001 PCM
> >> pcm1:         PCM cap: 0x000e0560 16 20 24 bits, 44 48 96 192 KHz
> >> pcm1:             ADC: 8
> >> pcm1:
> >> pcm1:     nid=8 [audio input]
> >> pcm1:       + <- nid=35 [audio mixer] [src: speaker, mic]
> >> pcm1:              + <- nid=25 [pin: Mic (Black Jack)] [src: mic]
> >> pcm1:              + <- nid=29 [beep widget] [src: speaker]
> >> pcm1:
> >> pcm1: Microphone Volume (OSS: mic): 0/30dB
> >> pcm1:    +- ctl 10 (nid  25 out):    0/30dB (4 steps)
> >> pcm1:    +- ctl 22 (nid  35 in   1): mute
> >> pcm1:
> >> pcm1: Speaker/Beep Volume (OSS: speaker)
> >> pcm1:    +- ctl 25 (nid  35 in   4): mute
> >> pcm1:
> >> pcm1: Recording Level (OSS: rec): -17/30dB
> >> pcm1:    +- ctl  4 (nid   8 in   0): -17/30dB (64 steps) + mute
> >> pcm1:    +- ctl 10 (nid  25 out):    0/30dB (4 steps)
> >> pcm1:    +- ctl 22 (nid  35 in   1): mute
> >> pcm1:    +- ctl 25 (nid  35 in   4): mute
> >> pcm1:
> >> pcm1: Mixer "mic":
> >> pcm1: Mixer "rec":
> >> pcm1: Recording channel set is: Front Left, Front Right,
> >> pcm1: Recording channel matrix is: 2.0 (disconnected)
> >> 
> >> # sysctl hw.snd.default_unit
> >> hw.snd.default_unit: 0  
> > 
> > Hi,
> > 
> > what does 'cat /dev/sndstat' show?  
> I *knew* I was forgetting something.
> # cat /dev/sndstat
> Installed devices:
> pcm0: <Realtek ALC257 (Analog)> (play/rec) default
> pcm1: <Realtek ALC257 (Right Analog Mic)> (rec)
> No devices installed from userspace.

So this just confirms what I somehow saw above - pcm1 is input only, so
for producing sound, setting hw.snd.default_unit=1 is not going to help.

Also, I am not sure, but this line, from your verbose output above

pcm0: Playback channel matrix is: 2.0 (disconnected)

may explain why you are getting no sound. On my Yoga Book, with working
sound, I have

pcm1: Playback channel matrix is: 2.0 (unknown)

definitely different.

> > It should be just small excerpt from
> > the above, but still...
> > 
> > HDA setup is a bit of mystery for me, I have GPD MicroPC where I am
> > not able to produce any sound using internal speaker, recently
> > found Yoga Book working with both internal speaker and output line
> > out of the box.
> > 
> > For the former, I have a workaround, kind of - when I connect
> > additional monitor via HDMI port, I am able to route sound to that
> > monitor just by setting hw.snd.default_unit=2. It is not the best
> > solution, it just work well enough for me.  
> Thanks for the hint. I'll see if I can get anything through HDMI.
> 
> Really appreciate the feedback, Milan. Thanks!
> 

I think it is really easy - connect your HDMI monitor, and you should
see new device in 'cat /dev/sndstat' output, probably pcm2. Then, with
setting hw.snd.default_unit=2, you should get sound from HDMI monitor
speaker(s).

Regards,
Milan