Ubuntu 22.04下华硕UX3402ZA笔记本TRRS组合插孔麦克风被识别但无法工作的求助
大家好,我遇到了一个头疼的音频问题,想请各位帮忙看看:
我把森海塞尔GSP 302立体声耳机麦克风(带TRRS插头)插在笔记本的4针3.5mm组合插孔上,耳机的立体声输出正常,但麦克风完全没反应,而笔记本的内置麦克风是可以正常工作的。
硬件/软件基础信息
- 操作系统:Ubuntu 22.04(与Windows 11双系统)
- 笔记本型号:华硕UX3402ZA
- 声卡:sof-hda-dsp
- 音频芯片组:Realtek ALC294
- 耳机麦克风:森海塞尔GSP 302(已确认在Windows系统下可正常工作)
备注:我之前通过补丁修复了内置扬声器无声音的问题,现在除了组合插孔的麦克风输入外,其他所有音频功能(包括内置麦克风)都正常运行。
Pulseaudio相关操作与状态
之前我发现组合插孔的输入源处于SUSPENDED状态(原因:IDLE),于是修改了/etc/pulse/default.pa文件,注释掉了以下内容:
### Automatically suspend sinks/sources that become idle for too long #load-module module-suspend-on-idle
现在Pulseaudio已经识别到组合插孔的输入设备,通过pacmd list-sources可以看到:
$ pacmd >>> list-sources [...] * index: 4 name: <alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__source> driver: <module-alsa-card.c> flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: RUNNING suspend cause: (none) priority: 9032 volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB balance 0.00 base volume: 65536 / 100% / 0.00 dB volume steps: 65537 muted: no current latency: 0.33 ms max rewind: 0 KiB sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stéréo used by: 1 linked by: 1 configured latency: 40.00 ms; range is 0.50 .. 341.33 ms card: 0 <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic> module: 7 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "" alsa.id = "HDA Analog (*)" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "0" alsa.card_name = "sof-hda-dsp" alsa.long_card_name = "ASUSTeKCOMPUTERINC.-ZenbookUX3402ZA_UX3402ZA-1.0-UX3402ZA" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "51c8" device.string = "_ucm0001.hw:sofhdadsp" device.buffering.buffer_size = "65536" device.buffering.fragment_size = "16384" device.access_mode = "mmap+timer" device.profile.name = "HiFi: hw:sofhdadsp: source" device.profile.description = "Headphones Stereo Microphone" alsa.mixer_device = "_ucm0001.hw:sofhdadsp" device.description = "sof-hda-dsp Headphones Stereo Microphone" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" ports: [In] Mic2: Headphones Stereo Microphone (priority 200, latency offset 0 usec, available: unknown) properties: active port: <[In] Mic2> index: 5 name: <alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_6__source> driver: <module-alsa-card.c> flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: RUNNING suspend cause: (none) priority: 9031 volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB balance 0.00 base volume: 30419 / 46% / -20.00 dB volume steps: 65537 muted: no current latency: 0.46 ms max rewind: 0 KiB sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stéréo used by: 1 linked by: 1 configured latency: 40.00 ms; range is 0.50 .. 341.33 ms card: 0 <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic> module: 7 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "" alsa.id = "DMIC (*)" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "6" alsa.card = "0" alsa.card_name = "sof-hda-dsp" alsa.long_card_name = "ASUSTeKCOMPUTERINC.-ZenbookUX3402ZA_UX3402ZA-1.0-UX3402ZA" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "51c8" device.string = "_ucm0001.hw:sofhdadsp,6" device.buffering.buffer_size = "65536" device.buffering.fragment_size = "16384" device.access_mode = "mmap+timer" device.profile.name = "HiFi: hw:sofhdadsp,6: source" device.profile.description = "Digital Microphone" alsa.mixer_device = "_ucm0001.hw:sofhdadsp" device.description = "sof-hda-dsp Digital Microphone" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" ports: [In] Mic1: Digital Microphone (priority 100, latency offset 0 usec, available: unknown) properties: active port: <[In] Mic1>
虽然Pavucontrol里能看到这个组合插孔输入设备,但完全检测不到任何输入信号。
Alsa相关尝试
我原本以为Alsa应该在“HDA Analog 0”下捕获组合插孔的麦克风信号,但实际在alsamixer里看不到对应的选项。
我尝试修改/etc/modprobe.d/alsa-base.conf文件,分别单独添加以下配置(没有混合使用),但每次修改后重启,耳机输出依然正常,麦克风还是没有输入信号:
#options snd-hda-intel model=asus-zenbook #options snd-hda-intel model=dell-headset-multi #options snd-hda-intel model=aspire-headset-mic
HDAJackRetask操作尝试
我用HDAJackRetask工具查看Realtek ALC294的引脚情况,发现只有两个引脚显示为已连接:
- ID 0x17:内置扬声器
- ID 0x21:黑色耳机(立体声输出正常)
奇怪的是,虽然内置麦克风能正常工作,但工具里没有显示内置麦克风或耳机麦克风的连接引脚。
另外有几个未连接的引脚可以设置为“Microphone”,分别是ID 0x19、0x1a、0x1b。我尝试了两种设置:
- 单独覆盖ID 0x19为麦克风
- 同时覆盖ID 0x1a和0x1b为麦克风
每次设置后我都选择了“安装启动覆盖”并重启系统,但重启后打开HDAJackRetask,这些引脚依然显示为未连接,问题也没有解决。
我的推测与求助
我怀疑问题根源在Alsa层面,因为Pulseaudio已经能识别并加载组合插孔的输入设备,但Alsa似乎没有正确捕获到麦克风的信号。
我已经花了好几天在这个问题上,尝试了各种方法都没解决,希望各位能给我一些提示或建议,非常感谢!
备注:内容来源于stack exchange,提问作者AlexMrsh

