华为 14S 安装 Ubuntu 22.10 后没有声音

华为 14S 安装 Ubuntu 22.10 后没有声音

我们买了一部华为 14S,它很不错,但是扬声器和耳机的声音有问题,有时耳机不工作,扬声器经常不工作。真是一场噩梦!

答案1

这不是一个完美的解决方案,更多的是一种变通方法:扬声器的声音工作,需要使用外部耳机适配器(例如这个

1-在底部添加此行/etc/modprobe.d/alsabase.conf

options snd-hda-intel dmic_detect=0

2 - 重启

3 - 尝试命令alsactl init。扬声器应该可以工作(如果不行,请转到声音参数)。

4 - 如果alsactl init有效,在 gnome 中添加启动应用程序:

启动gnome-session-properties命令并添加新应用程序:

name :    Alsactl Init
command : alsactl init
comment : to make speaker work

. . 保存,关闭并重启

扬声器应该可以工作(如果不行,请转到声音参数)。

切勿使用集成耳机

! 使用外部 USB 转插孔适配器

PS:列出的命令这里如果仍然不起作用可能会有所帮助(需要安装alsa-tools包才能使用hda-verb命令)。

答案2

我也遇到了类似的问题,根据找到的资料,我编写了一个解决该问题的守护进程。

问题

在 Linux 发行版的声卡驱动程序中,耳机和扬声器通道是混合的。

当连接耳机时,系统认为声音应该从扬声器输出。当关闭耳机时,系统会尝试通过耳机输出声音。

问题详细信息(发现这里

看起来有一些奇怪的硬件设计,因为从我的角度来看,有趣的小部件是:

  • 0x01 - 音频功能组
  • 0x10-耳机 DAC(实际上两个设备都连接在这里)
  • 0x11-扬声器 DAC
  • 0x16-耳机插孔
  • 0x17-内置扬声器

和:

  • 小部件 0x16 和 0x17 应该简单地连接到不同的 DAC 0x10 和 0x11,但内部扬声器 0x17 忽略连接选择命令并使用耳机插孔 0x16 的值。
  • 耳机插孔 0x16 由一些奇怪的东西控制,因此应该使用音频组 0x01 的 GPIO 命令启用它。
  • 内部扬声器 0x17 与耳机插孔 0x16 相连,因此应使用 EAPD/BTL 启用命令明确禁用它。

解决方案

已经实现了一个守护进程,用于监视耳机的连接/断开连接并访问声卡设备以便将播放切换到正确的位置。

你可以在我的 github repo 中获取安装程序:华为-ubuntu-声音修复

希望能帮助到你。

相关内容