暂停后无 HDMI 音频

暂停后无 HDMI 音频

我的问题是,当我在挂起后唤醒计算机时,HDMI 上没有音频。好吧,有“音频”,但就像播放一首歌,每 10 分钟听到 1 秒,而且非常失真。有些奇怪。

使用笔记本电脑的扬声器我没有遇到任何问题。

我从 8.04 开始使用 Ubuntu。我实际使用的笔记本电脑 ThinkPad t450 上装有 14.04,在升级到 16.04 之前没有出现这样的问题。

我已看过此帖子但对我不起作用:暂停/恢复后无声音

我也尝试使用脚本/etc/pm/sleep.d/

#!/bin/sh

# Script to disable hdmi audio before suspend and restart after wake.

case "${1}" in
        suspend|hibernate)
            rmmod snd_hda_codec_hdmi
            rmmod snd
                ;;
        resume|thaw)
            modprobe snd
            modprobe snd_hda_codec_hdmi
                ;;
esac

仍然不起作用,也许我应该在脚本中添加一些内容?

lsmod | grep hdmi给我

snd_hda_codec_hdmi     53248  1
snd_hda_codec         135168  4 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel
snd_hda_core           73728  5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_pcm               106496  5 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core
snd                    81920  35 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,thinkpad_acpi,snd_seq_device

谢谢您的帮助!

答案1

我有一台 Radeon 6570,但xrandr解决方案不起作用。

由于CTRL+ ALT+F6CTRL+ ALT+F7有效,我使用了命令chvt

因此我将 Marcos Silveira 脚本修改如下:

/lib/systemd/system-sleep/fixhdmiaudio

#! /bin/sh
case $1/$2 in

    post/*)

        # Vai para o VT + 1 e retorna para o VT atual
        CURRENT_VT=$(fgconsole)
        chvt $((CURRENT_VT + 1)) && chvt $((CURRENT_VT))
        ;;
esac

答案2

/etc/pm/sleep.d/从 15.04 开始迁移到 systemd 后,输入脚本将不再起作用。

如果您想尝试这样的脚本,您可以/lib/systemd/system-sleep/直接使用它们,不过由于传递的参数不同,您还需要对它们做一些细微的修改。

man systemd-sleep

第一个参数将是“pre”,第二个参数将是“suspend”、“hibernate”或“hybrid-sleep”,具体取决于所选择的操作。

离开系统挂起和/或休眠状态后,立即运行相同的可执行文件,但第一个参数现在是“post”。

在您发布的脚本中,您需要更改suspend|hibernate)pre)并将resume|thaw)更改为post)

答案3

我知道这个问题有多烦人。我曾经安装过专有的 ATI 驱动程序,但是当我更新到 16.04 时,我发现了这个问题。我意识到这个问题很容易解决,只需按ctrl+ alt+f6ctrl+ alt+f7或使用 xrandr 更改分辨率即可。所以我创建了以下解决方法。

打开终端,然后输入以下命令...

sudo nano /lib/systemd/system-sleep/fixhdmiaudio

...并粘贴此内容:

#! /bin/sh

# Bug 1252423 – HDMI Audio seen as 'unplugged' after Suspend
# Created by Marcos Silveira - 2016
# Workaround

case $1/$2 in
        pre/*)
          #sleeping - nothing to do
        who |cut -d " " -f1 | uniq > /tmp/suspend.user
          ;;
        post/*)
          # Waking up
          export DISPLAY=:0
          #perform command  as the current tty user

          su - $(cat /tmp/suspend.user) -c "/usr/bin/xrandr --output HDMI-0 --auto;sleep 1s;/usr/bin/xrandr --output HDMI-0 --mode 1920x1080"
          ;;
esac

我的默认分辨率是 1920x1080。您可以使用 xrandr 设置任何支持的分辨率。我的默认 HDMI 输出是 HDMI-0。这对您来说可能有所不同。我建议您先执行 xrandr 以确认您的默认 HDMI 输出。

保存关闭并设置权限:

sudo chmod 755 /lib/systemd/system-sleep/fixhdmiaudio

享受并祝你好运。

相关内容