web-dev-qa-db-ja.com

テレビの電源を切った後、HDMIオーディオが停止する

12.04アップデート後、2台目のモニター(プラズマテレビ)をオフにすると、HDMIオーディオが機能しなくなります。グラフィックカードは、第1モニターへのDVI出力、テレビがオーディオ/ビデオを受信するレシーバーへのHDMI出力を備えたRadeon 6800です。オーディオは常に私の受信機の音を介しています。

テレビとレシーバーがオンの状態で起動する限り、問題なく動作します。テレビの電源を切ると、BARTのHDMIオーディオが消え、HDMIオプションがサウンドメニューから消えます。 11.10で時折HDMIの問題が発生しましたが、テレビのオン/オフを切り替えると音が修正されました。常にオーディオのうちHDMIを使用するようにハードコーディングするにはどうすればよいですか?テレビが12.04がリッスンしていることを知らせる信号を送信していると思われます。テレビの電源を入れ直してもこの問題は解決しません。サウンドメニューを使用してこの新しい「機能」を無効にすることをお勧めします。

10
Ryan

私はこの問題を抱えています。適切な修正を見つけることができませんでしたが、この回避策があります。それは恐ろしいハックですが、根本的な問題が修正されるまで私のために仕事をすることに注意してください-うまくいけば、他の誰かを助けるでしょう。 5秒ごとにdmesgでHDMI接続エラーをチェックし、見つかった場合は接続を再開します。

このウォッチドッグスクリプトを作成しました。 "DFP1"を出力の名前に置き換えます(xrandrから取得します)。

#!/usr/bin/env python
import os
import time

valid = "ELD_Valid=1"
invalid = "ELD_Valid=0"

def executeCommand(the_command):
    temp_list = os.popen(the_command).read()
    return temp_list

def getDMESG():
    return executeCommand("dmesg | grep -i hdmi | tail -n 10")

def needsRefresh():
    list = getDMESG();
    valid_index = list.rfind(valid)
    invalid_index = list.rfind(invalid)
    if invalid_index > valid_index:
        return True
    else:
        return False

def doTest():
    if needsRefresh() == True:
        os.popen("xrandr -display :0 --output DFP1 --off; xrandr -display :0 --output DFP1 --auto").read()

while True:
    doTest()
    time.sleep(5)

(触媒ドライバーを使用して)エラーを検出するより良い方法を誰かが知っているなら、私に知らせてください。 (オープンソースドライバーを使用すると、スクリプトを実行したい場合、drm acpiイベントでコードのリセットビットをトリガーできると思います)。

これを/etc/rc.localに追加して開始します:(「xbmc」をログインするユーザー名に変更します)

su xbmc -c 'python /home/USERNAME/src/check_hdmi.py &'
9
Vanilla_Brys

それまでの間、バグレポートは順調に進んでいますが、いくつかの頭痛を軽減するクイックボタンの組み合わせに気付きました。

単にttyに引き出してGUIに戻します。

CTRL + ALT + F1 (またはからの何か F1 に F6

それから

CTRL + ALT + F8 (使用する必要があるかもしれません F7 の代わりに F8。 1つはデスクトップに戻り、もう1つは黒い画面とカーソルを表示します)

GUIに戻ると、同期が再確立されたようです。

これは、ログアウトしてから再ログインするよりもはるかに速く、プログラムなどは開いたままです。

ボタンの組み合わせ。できた手間のかからない。

もちろんこれは修正ではありません。 HDMIを再同期させてオーディオを元に戻すのは、キーボードをすばやく組み合わせただけです。

それは私の側で機能します。
他の人がテレビを少しの間オフにして、自分で試してみたいですか?

4
user85894

テレビへの出力をオフにしてからオンに戻すと、サウンドもリセットされることに気付きました(Radeon HD6670)。 aticonfigコマンドは、ディスプレイをテレビの画面いっぱいに設定します。 「xrandr -q」を実行して出力名を調べる必要があります。「DFP1」をコマンドの出力で「CONNECTED」の前にリストされているものに変更します(大文字と小文字が区別されます)。私のセットアップでこれに関する唯一の問題は、スクリプトのオン/オフ部分を実行するときに、画面の上部から途中までジャンプするウィンドウがあることです(発生した場合は、Altキーを押しながら下にドラッグします)。誰かがより良い解決策/回避策をコーディングできるかもしれません。

#! /bin/bash

# Turn off the DFP1 Output
xrandr --output DFP1 --off
# Turn DFP1 back on
xrandr --auto 

# Set Screen to fit TV
aticonfig --set-dispattrib=dfp1,positionX:0
aticonfig --set-dispattrib=dfp1,positionY:0
aticonfig --set-dispattrib=dfp1,sizeX:1920
aticonfig --set-dispattrib=dfp1,sizeY:1080
2
Viper2

同じ問題。唯一のヒントは、pactl listを実行した後です

Sink #0
    State: SUSPENDED
    Name: alsa_output.pci-0000_01_00.1.hdmi-stereo
    Description: Turks HDMI Audio [Radeon HD 6000 Series] Digital Stereo (HDMI)
    Driver: module-alsa-card.c
    Sample Specification: s16le 2ch 44100Hz
    Channel Map: front-left,front-right
    Owner Module: 4
    Mute: no
    Volume: 0: 100% 1: 100%
            0: 0.00 dB 1: 0.00 dB
            balance 0.00
    Base Volume: 100%
                 0.00 dB
    Monitor Source: alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor
    Latency: 0 usec, configured 0 usec
    Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS 
    Properties:
        alsa.resolution_bits = "16"
        device.api = "alsa"
        device.class = "sound"
        alsa.class = "generic"
        alsa.subclass = "generic-mix"
        alsa.name = "HDMI 0"
        alsa.id = "HDMI 0"
        alsa.subdevice = "0"
        alsa.subdevice_name = "subdevice #0"
        alsa.device = "3"
        alsa.card = "1"
        alsa.card_name = "HD-Audio Generic"
        alsa.long_card_name = "HD-Audio Generic at 0xfddfc000 irq 48"
        alsa.driver_name = "snd_hda_intel"
        device.bus_path = "pci-0000:01:00.1"
        sysfs.path = "/devices/pci0000:00/0000:00:02.0/0000:01:00.1/sound/card1"
        device.bus = "pci"
        device.vendor.id = "1002"
        device.vendor.name = "Advanced Micro Devices [AMD] nee ATI"
        device.product.name = "Turks HDMI Audio [Radeon HD 6000 Series]"
        device.string = "hdmi:1"
        device.buffering.buffer_size = "65536"
        device.buffering.fragment_size = "32768"
        device.access_mode = "mmap+timer"
        device.profile.name = "hdmi-stereo"
        device.profile.description = "Digital Stereo (HDMI)"
        device.description = "Turks HDMI Audio [Radeon HD 6000 Series] Digital Stereo (HDMI)"
        alsa.mixer_name = "ATI R6xx HDMI"
        alsa.components = "HDA:1002aa01,00aa0100,00100200"
        module-udev-detect.discovered = "1"
        device.icon_name = "audio-card-pci"
    Ports:
        hdmi-output-0: HDMI / DisplayPort (priority: 5900, not available)
    Active Port: hdmi-output-0
    Formats:
        pcm

モニターをオフにするとシンクが無効になりますか?また、テレビを再度オンにしたときに再び有効になることはありません。 hdmi-output-0:HDMI/DisplayPort(優先度:5900、利用不可

notavailable」は「available」である必要があります

私はあなたがfglrxでATIカードを使用していると仮定します。試してみる

aticonfig --acpi-services=off

この設定が永続的かどうかはわかりません。その場合、再度オンにするコマンドは次のとおりです。

aticonfig --acpi-services=on

これがうまくいくとは思えない。編集>(そうではなかった)

User53740が投稿したとおり。ログアウト/インは音声を復元します。モニターをオンまたはオフに切り替えると、HDMIオーディオが無効になります。本当にログアウトしたくない場合は、hdmiプラグインを再び削除してプラグインを再度実行すると、hdmiオーディオが復元されます。あまり頻繁にしないでください。必死のときだけ。

スレッドがあります here onddgeyバグレポート here

編集>別の回避策は、システム設定>ディスプレイに移動します。次に、何も変更せずに適用をクリックします。

1
user55138

[システム設定]→[ディスプレイ]に移動します

解像度を変更し、適用してから元に戻します。

すべての設定→サウンド→HDMIを選択

1
Nicolai

これは私のために動作します(Intel HDグラフィックカード):killall pulseaudio

(ここにあります: https://askubuntu.com/a/176276/45779

0
Eugen Labun

解決されたGdの紳士

ATI 5770の私のhttpだけが同じ問題を抱えていたので、レシーバーに接続してからテレビに接続しました。 AMDのWebサイトから最新のBETAドライバーパックをダウンロードしてインストールすることにより、この問題を解決しました。

リンクはこちら ATI Radeon

Catalyst™12.7 Beta Driver へのリンクをありがとうございますこの厄介な問題のために。

ただし、Windows®7およびWindowsVista®用の AMD Catalyst 12.7 Betaドライバーをインストールした後

すべてが順調です!

とても感謝しております。:)

0
John

同じ問題を抱えています。

もちろん、ATIドライバーもおそらく問題の原因です。私のものはRadeon HD 6xxxです。

ログアウトしてから再度ログインすると音は元に戻りますが、もっと簡単な解決策があると思います。

0
Xamidovic