更新后archlinux无法检测耳机

问题描述

这个错误大概是今年8月初出现的,在某次更新后archlinux虽然扬声器正常,但接入有线耳机后无法检测到,使用蓝牙耳机则无影响,多次重启无法解决。

这个错误我在论坛和搜索引擎上都无法找到答案,但最后却让ChatGPT分析并解决了。

原因

问题在于内核驱动的选择:

SOF 驱动(Sound Open Firmware)
这是 Intel 推的“新一代”音频框架,但在很多机型(尤其是笔记本)上还不太成熟,经常出现 插耳机没反应 / 麦克风不可用 / 随机卡死 的问题。

HDA 驱动(snd-hda-intel)
这是老牌的传统驱动,虽然“老”,但兼容性好,尤其是耳机插拔检测、Jack sensing 这些功能往往更稳定。

archlinux打包的linux内核,在某次更新时改变了相关的内核参数,导致内核使用了 SOF 音频驱动,但在我的笔记本上还不成熟,就引发了耳机无法检测的问题。

解决

解决办法也很简单,更改内核参数。用 root 账户新建/etc/modprobe.d/disable-sof.conf

options snd-intel-dspcfg dsp_driver=1

保存后重启,问题解决。