web-dev-qa-db-ja.com

サスペンド後に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
arturo.mj

Radeon 6570を使用していますが、xrandrソリューションが機能しませんでした。

やっているように CTRL+ALT+F6 そして CTRL+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
1

私はこの問題がどのように迷惑になるかを知っています。以前はプロプライエタリなATIドライバーをインストールしていましたが、16.04にアップデートしたときにこの問題がわかりました。問題は簡単に解決できることに気付きました ctrl + alt + f6 そして ctrl + 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です。これは異なる場合があります。デフォルトのHDMI出力を確認する前にxrandrを実行することをお勧めします。

権限を保存して閉じ、設定します。

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

お楽しみください。

0
Marcos Silveira

スクリプトを/etc/pm/sleep.d/に入れると、15.04からsystemdに移行した結果、機能しなくなります。

このようなスクリプトを試してみたい場合は、代わりに/lib/systemd/system-sleep/に入れてください。ただし、渡されるパラメーターが異なるため、それらに若干の変更を加える必要があります。

man systemd-sleepから:

最初の引数は「pre」、2番目の引数は選択したアクションに応じて「suspend」、「hibernate」、または「hybrid-sleep」になります。

システムのサスペンドやハイバネーションを終了した直後に同じ実行可能ファイルが実行されますが、最初の引数は「ポスト」になりました。

投稿したスクリプトでは、suspend|hibernate)pre)に、resume|thaw)post)に変更する必要があります。

0
Martin Thornton