声音问题(Ubuntu 18.04):挂起后没有声音

声音问题(Ubuntu 18.04):挂起后没有声音

我遇到了声音问题(在 Acer Swift 1 上运行 Ubuntu 18.04)。启动后,声音一开始完全正常(通过扬声器和耳机)。但如果我暂停然后稍后再回来,声音会自动设置为耳机(尽管它们没有插入),并且在设置中没有其他可用选项。但是,如果我真的插入耳机,也没有声音。有时关闭显示器并在声音“播放”时重新打开它会有所帮助,但这并不总是有效。我已经将它发送给 Acer,但他们说这不是他们的问题,因为我正在使用 Ubuntu... 关于问题是什么以及如何解决它,有什么想法吗?

(抱歉,如果解释得有点冗长,因为我不太习惯英语 IT 术语。但愿问题仍然清楚。否则请直接询问 ;-))。

编辑#1:

  1. Pulse Audio 将扬声器和耳机都显示为输出设备,但它还说我已插入耳机(但我没有)并且扬声器不可用......

  2. 我尝试了这个建议(https://askubuntu.com/a/78179/307184),但是一旦我选择同时输出选项,就没有声音(无论是通过扬声器还是耳机)。

编辑#2:

显然其他人也遇到了同样的问题(挂起后无声音)。因此,根据建议,以下是我的系统设置信息:

sudo lspci -v给出:

00:0e.0 Audio device: Intel Corporation Device 3198 (rev 03) (prog-if 80)
    Subsystem: Acer Incorporated [ALI] Device 126a
    Flags: bus master, fast devsel, latency 0, IRQ 134
    Memory at a1114000 (64-bit, non-prefetchable) [size=16K]
    Memory at a1000000 (64-bit, non-prefetchable) [size=1M]
    Capabilities: [50] Power Management version 3
    Capabilities: [80] Vendor Specific Information: Len=14 <?>
    Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel, snd_soc_skl

从挂起状态唤醒后,它说(第三行只有一个数字不同,不知道这是什么意思):

00:0e.0 Audio device: Intel Corporation Device 3198 (rev 03) (prog-if 80)
    Subsystem: Acer Incorporated [ALI] Device 126a
    Flags: bus master, fast devsel, latency 0, IRQ 25
    Memory at a1114000 (64-bit, non-prefetchable) [size=16K]
    Memory at a1000000 (64-bit, non-prefetchable) [size=1M]
    Capabilities: [50] Power Management version 3
    Capabilities: [80] Vendor Specific Information: Len=14 <?>
    Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel, snd_soc_skl

aplay -l给出(启动和从挂起状态唤醒后相同):

**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: PCH [HDA Intel PCH], Gerät 0: ALC256 Analog [ALC256 Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 3: HDMI 0 [HDMI 0]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 7: HDMI 1 [HDMI 1]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 8: HDMI 2 [HDMI 2]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 9: HDMI 3 [HDMI 3]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: PCH [HDA Intel PCH], Gerät 10: HDMI 4 [HDMI 4]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

pactl list short sinks给出(启动和从挂起状态唤醒后也同样如此):

0   alsa_output.pci-0000_00_0e.0.analog-stereo  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
1   combined    module-combine-sink.c   s16le 2ch 44100Hz   SUSPENDED

答案1

编辑:2019 年 7 月 18 日

问题已根据新信息进行了修改:

从挂起状态唤醒后,它说(第三行只有一个数字不同,不知道这是什么意思):

第三行从 更改IRQ 134IRQ 25

中断请求代表中断请求。它基本上是一个电话号码,设备会拨打中央处理器C恩特拉尔处理nit) 来完成工作。由于电话号码在挂起和恢复之间发生了变化,因此声卡无法调用 CPU 来完成工作。


这是我几年前使用过的脚本/lib/systemd/system-sleep/sound

#!/bin/sh

# NAME: sound
# PATH: /lib/systemd/system-sleep
# CALL: Called from SystemD automatically

# DESC: PulseAudo 8 sets sound to laptop when going to sleep.
#       This script sets sound back to TV.

# DATE: Sep 23 2016. Modified: Oct 28, 2018.

# NOTE: Test psmouse for askubuntu.com "Touchpad not working after suspending laptop"

# Aug 5, 2018  -    Turn off executition bit. As per AU turn off automatic switching:
# https://askubuntu.com/questions/1061414/how-to-disable-pulseaudio-automatic-device-switch/1061578#1061578
#                   Turn execution bit back on as there is no sound at all.
case $1/$2 in
  pre/*)
    echo "$0: Going to $2..."
    # Place your pre suspend commands here, or `exit 0` if no pre suspend action required
    #    modprobe -r psmouse
    sleep 1
    ;;
  post/*)
    echo "$0: Waking up from $2..."
    # Place your post suspend (resume) commands here, or `exit 0` if no post suspend action required
    sleep 2
    # modprobe psmouse
    export PULSE_RUNTIME_PATH="/run/user/1000/pulse/"
    sudo -u UserName -E pacmd set-card-profile 0 output:hdmi-stereo
    ;;
esac
  • 更改UserName为您的用户名。
  • 更改hdmi-stereo为输出名称。请参阅通过命令行配置 pulseaudio 输出为了pacmd list-cards
  • 使脚本可执行sudo chmod a+x /lib/systemd/system-sleep/sound

笔记我的新系统不再需要使用此脚本。不确定它是否适用于您的情况,但可能适用。

答案2

该问题与许多类似的问题重复,例如“我的机器没有声音 - 该怎么办?”。

通常有一个简单的解决方案,例如安装这两个包:

sudo apt 安装 amarok rhythmbox

或者

sudo apt install--重新安装 amarok rhythmbox

然后另外添加声卡驱动程序。

也许你应该最后重新启动你的机器:

sudo 重启

相关内容