Microphone does not work with Lenovo T530 under FreeBSD 12.1

jrm@

Developer
Like many others, $wife has to work from home these days, which means lots of video conferencing. But, she's unable to use her FreeBSD laptop for this, because her microphone doesn't work at all when running FreeBSD. The subject says 12.1, but I have tried off and on for years to get the mic working, but always gave up. Today, just to be certain it's not a hardware issue, I put Ubuntu on a thumb drive and booted it up and the microphone just worked. She understandably questioned why I don't just install Ubuntu for her, so now I am really motivated to get the mic working under FreeBSD. Below is all the information that I think is relevant. The last thing I can think of trying is some of the hints described in snd_hda(4), but I have to admit, it doesn't make so much sense to me. Does anyone understand this better than me?

Code:
% grep '^hda\|pcm' /var/run/dmesg.boot
hdacc0: <Realtek ALC269 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC269 Audio Function Group> at nid 1 on hdacc0
pcm0: <Realtek ALC269 (Analog 2.0+HP/2.0)> at nid 20,21 and 24 on hdaa0
pcm1: <Realtek ALC269 (Internal Analog Mic)> at nid 18 on hdaa0
hdacc1: <Intel Panther Point HDA CODEC> at cad 3 on hdac0
hdaa1: <Intel Panther Point Audio Function Group> at nid 1 on hdacc1
pcm2: <Intel Panther Point (HDMI/DP 8ch)> at nid 5 on hdaa1
pcm3: <Intel Panther Point (HDMI/DP 8ch)> at nid 6 on hdaa1
pcm4: <Intel Panther Point (HDMI/DP 8ch)> at nid 7 on hdaa1

Code:
% cat /dev/sndstat
Installed devices:
pcm0: <Realtek ALC269 (Analog 2.0+HP/2.0)> (play/rec) default
pcm1: <Realtek ALC269 (Internal Analog Mic)> (rec)
pcm2: <Intel Panther Point (HDMI/DP 8ch)> (play)
pcm3: <Intel Panther Point (HDMI/DP 8ch)> (play)
pcm4: <Intel Panther Point (HDMI/DP 8ch)> (play)
No devices installed from userspace.

Code:
% sudo sysctl dev.hdac.0.pindump=1
May 12 11:55:07 bravo kernel: hdaa0: Dumping AFG pins:
May 12 11:55:07 bravo kernel: hdaa0: nid   0x       as seq device       conn  jack    loc        color   misc
May 12 11:55:07 bravo kernel: hdaa0: 18    90a60140 4  0   Mic          Fixed Digital Internal   Unknown 1
May 12 11:55:07 bravo kernel: hdaa0:  Caps: IN
May 12 11:55:07 bravo kernel: hdaa0: 20    90170110 1  0   Speaker      Fixed Analog  Internal   Unknown 1
May 12 11:55:07 bravo kernel: hdaa0:  Caps:    OUT    EAPD      Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa0: 21    0321101f 1  15  Headphones   Jack  1/8     Left       Black   0
May 12 11:55:07 bravo kernel: hdaa0:  Caps:    OUT HP EAPD      Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa0: 23    411111f0 15 0   Speaker      None  1/8     Rear       Black   1 DISA
May 12 11:55:07 bravo kernel: hdaa0:  Caps:    OUT
May 12 11:55:07 bravo kernel: hdaa0: 24    03a11830 3  0   Mic          Jack  1/8     Left       Black   8
May 12 11:55:07 bravo kernel: hdaa0:  Caps: IN OUT         VREF Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa0: 25    411111f0 15 0   Speaker      None  1/8     Rear       Black   1 DISA
May 12 11:55:07 bravo kernel: hdaa0:  Caps: IN OUT         VREF Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa0: 26    411111f0 15 0   Speaker      None  1/8     Rear       Black   1 DISA
May 12 11:55:07 bravo kernel: hdaa0:  Caps: IN OUT HP      VREF Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa0: 27    411111f0 15 0   Speaker      None  1/8     Rear       Black   1 DISA
May 12 11:55:07 bravo kernel: hdaa0:  Caps: IN OUT         VREF Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa0: 30    411111f0 15 0   Speaker      None  1/8     Rear       Black   1 DISA
May 12 11:55:07 bravo kernel: hdaa0:  Caps:    OUT              Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa0:  NumGPIO=2 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1
May 12 11:55:07 bravo kernel: hdaa0:  GPIO0: disabled
May 12 11:55:07 bravo kernel: hdaa0:  GPIO1: disabled
May 12 11:55:07 bravo kernel: hdaa1: Dumping AFG pins:
May 12 11:55:07 bravo kernel: hdaa1: nid   0x       as seq device       conn  jack    loc        color   misc
May 12 11:55:07 bravo kernel: hdaa1: 5     18560010 1  0   Digital-out  Jack  Digital 0x18       Unknown 0
May 12 11:55:07 bravo kernel: hdaa1:  Caps:    OUT              Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa1: 6     18560020 2  0   Digital-out  Jack  Digital 0x18       Unknown 0
May 12 11:55:07 bravo kernel: hdaa1:  Caps:    OUT              Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa1: 7     18560030 3  0   Digital-out  Jack  Digital 0x18       Unknown 0
May 12 11:55:07 bravo kernel: hdaa1:  Caps:    OUT              Sense: 0x00000000 (disconnected)
May 12 11:55:07 bravo kernel: hdaa1:  NumGPIO=0 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=0

Code:
% sysctl -a | grep original
dev.hdaa.1.nid7_original:  0x18560030 as=3  seq=0 device=Digital-out conn=Jack ctype=Digital loc=0x18 color=Unknown misc=0
dev.hdaa.1.nid6_original:  0x18560020 as=2  seq=0 device=Digital-out conn=Jack ctype=Digital loc=0x18 color=Unknown misc=0
dev.hdaa.1.nid5_original:  0x18560010 as=1  seq=0 device=Digital-out conn=Jack ctype=Digital loc=0x18 color=Unknown misc=0
dev.hdaa.0.nid30_original: 0x411111f0 as=15 seq=0 device=Speaker conn=None ctype=1/8 loc=Rear color=Black misc=1
dev.hdaa.0.nid29_original: 0x40138205 as=0  seq=5 device=Speaker conn=None ctype=ATAPI loc=0x00 color=Purple misc=2
dev.hdaa.0.nid27_original: 0x411111f0 as=15 seq=0 device=Speaker conn=None ctype=1/8 loc=Rear color=Black misc=1
dev.hdaa.0.nid26_original: 0x411111f0 as=15 seq=0 device=Speaker conn=None ctype=1/8 loc=Rear color=Black misc=1
dev.hdaa.0.nid25_original: 0x411111f0 as=15 seq=0 device=Speaker conn=None ctype=1/8 loc=Rear color=Black misc=1
dev.hdaa.0.nid24_original: 0x03a11830 as=3  seq=0 device=Mic conn=Jack ctype=1/8 loc=Left color=Black misc=8
dev.hdaa.0.nid23_original: 0x411111f0 as=15 seq=0 device=Speaker conn=None ctype=1/8 loc=Rear color=Black misc=1
dev.hdaa.0.nid21_original: 0x03211020 as=2  seq=0 device=Headphones conn=Jack ctype=1/8 loc=Left color=Black misc=0
dev.hdaa.0.nid20_original: 0x90170110 as=1  seq=0 device=Speaker conn=Fixed ctype=Analog loc=Internal color=Unknown misc=1
dev.hdaa.0.nid18_original: 0x90a60140 as=4  seq=0 device=Mic conn=Fixed ctype=Digital loc=Internal color=Unknown misc=1

Code:
% sysctl dev.pcm.1.rec.autosrc
dev.pcm.1.rec.autosrc: 2

Code:
% mixer
Mixer vol      is currently set to  89:89
Mixer pcm      is currently set to  89:89
Mixer speaker  is currently set to  74:74
Mixer mic      is currently set to 100:100
Mixer mix      is currently set to  74:74
Mixer rec      is currently set to 100:100
Mixer igain    is currently set to 100:100
Mixer ogain    is currently set to 100:100
Recording source: mic
 
I can't believe she said that to you. We must prove she's wrong. ?

My laptop (Dell) has a weird behavior: I must set Recording source as monitor to use the builtin mic. What happens if you do that?

Code:
$ mixer
Mixer vol      is currently set to  60:60
Mixer pcm      is currently set to 100:100
Mixer rec      is currently set to  37:37
Mixer ogain    is currently set to 100:100
Mixer monitor  is currently set to  67:67
Recording source: monitor

$  sysctl hw.snd.default_unit
hw.snd.default_unit: 0

$  cat /dev/sndstat 
Installed devices:
pcm0: <Realtek ALC256 (Internal Analog)> (play/rec) default
pcm1: <Realtek ALC256 (Front Analog Headphones)> (play)
pcm2: <Intel Kaby Lake (HDMI/DP 8ch)> (play)
No devices installed from userspace.
 
I certainly hope I am not forced to install Ubuntu, but it's her laptop, so she's the boss.

mixer does not show a monitor device. mixer -f /dev/mixer1 does have a monitor device, but it's already set as the recording device.

Code:
% mixer -f /dev/mixer1
Mixer rec      is currently set to  37:37
Mixer monitor  is currently set to  67:67
Recording source: monitor
 
Your sndstat output shows that pcm0 and pcm1 can record audio ("play/rec").

mixer recsrc shows the current recording devices.
 
This seems to be the same information that is shown at the bottom of the mixer output. I have tried different recording devices using mixer =rec blah, but without luck.
 
Back
Top