HP Pavilion一体机Linux系统内置扬声器与耳机孔无声音输出,蓝牙音频功能正常
看起来你遇到了个挺闹心的音频问题——Windows下内置扬声器好好的,但Linux里不管是内置喇叭还是耳机孔都没声,偏偏蓝牙音频又完全正常。我之前帮好几个HP一体机用户排查过类似问题,给你几个实用的排查和解决步骤,你可以挨个试试:
先确认系统有没有识别到内置音频设备
打开终端运行aplay -l,看看输出里有没有和HP音频相关的设备条目(比如带HDA Intel PCH的行)。如果没找到设备,试试重新加载音频驱动模块:sudo rmmod snd-hda-intel && sudo modprobe snd-hda-intel跑完再用
aplay -l检查,要是能看到设备了,再测试声音。调整ALSA的适配配置
很多HP机型的音频芯片需要指定适配参数才能正常输出。编辑ALSA的配置文件:sudo nano /etc/modprobe.d/alsa-base.conf在文件末尾添上一行:
options snd-hda-intel model=hp-dgx按
Ctrl+O保存,Ctrl+X退出,然后重启系统再试声音。这个参数是专门针对HP机器的音频芯片优化的,成功率很高。检查PulseAudio的默认输出设置
有时候系统没选对默认输出设备,或者误判了耳机状态。先装PulseAudio音量控制(没装的话运行sudo apt install pavucontrol),打开后切换到「输出设备」标签:- 看看有没有内置扬声器的选项,是不是被静音了,或者音量拉到了0;
- 要是看到有标记为「未拔出」的耳机设备(明明没插耳机),点击设备旁边的小锁解锁,然后切换成内置扬声器输出试试。
添加内核启动参数适配
如果上面的方法都没用,试试给内核加个参数禁用数字麦克风检测,这会干扰部分HP机型的音频输出:
编辑GRUB配置文件:sudo nano /etc/default/grub找到
GRUB_CMDLINE_LINUX_DEFAULT这一行,在引号里加上snd-hda-intel.dmic_detect=0,比如改成:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash snd-hda-intel.dmic_detect=0"保存后运行
sudo update-grub,重启系统再测试声音。排查驱动加载错误
运行下面的命令看看音频驱动有没有加载错误:dmesg | grep -i audio输出里如果有带
error或failed的条目,那可以根据这些提示再针对性调整驱动或配置。
备注:内容来源于stack exchange,提问作者Marcel Röder

