TVをオフにするとHDMIオーディオが停止する


10

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

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



バグレポートがあります
hiro protagonist

回答:


9

私はこの問題を抱えてきました。適切な修正は見つかりませんでしたが、この回避策はあります。これは恐ろしいハックですが、根本的な問題が修正されるまで私にとってはうまくいくことに注意してください-うまくいけば他の誰かを助けるでしょう。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)

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

これを/etc/rc.localに追加することから始めます(「xbmc」を、ログインするユーザー名に変更します)。

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

スクリプトは機能しますが、rc.localによる自動化は機能しません。rc.localの外観を教えてください。
ECII、2012年

スクリプトをcronに追加して、1分ごとに実行するようにしてもいいですか
ECII、2012年

あなたはcronに入れることができます。while True:ブロック全体を削除して、単にと置き換える必要がありますdoTest()。いじくり回す必要があるかもしれません-ログインしているユーザーのcron(rootではない)で実行されることを確認してください。
Vanilla_Brys、2012年

私のrc.localにはいくつかのものが含まれています。下部には次のようsu xbmc -c 'python /home/andy/src/check_hdmi.py &'に表示されexit 0ます。新しい行に表示されます。xbmc正しいユーザー名に置き換えましたか?
Vanilla_Brys

通常のデスクトップ環境を使用している場合(私はxbmcを使用しているため、私は使用していません)、おそらく起動スクリプトにpythonスクリプトを追加するだけです。
Vanilla_Brys

4

その間、バグレポートがうまく処理されている間に、いくつかの頭痛を軽減する簡単なボタンの組み合わせに気づきました。

を引き出してttyGUIに戻すだけです。

CTRL+ ALT+ F1 (またはからF1までのすべてF6

その後

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

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

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

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

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

それは私の側で機能します。
他の誰かがテレビを一瞬オフにして、自分で試してみたいと思いませんか?


2

テレビへの出力をオフにしてから再びオンにすると、サウンドもリセットされることに気づきました(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

1

同じ問題。私が持っている唯一のヒントは実行した後です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、使用不可

利用できない」は「利用可能

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

aticonfig --acpi-services=off

この設定が持続するかどうかはわかりません。もしそうなら、再びオンにするコマンドです。

aticonfig --acpi-services=on

これがうまくいくとは思えません。編集>(それはしませんでした)

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

ここにスレッドがあり、ここにドッジバグレポートがあります

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


1

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

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

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


0

同じ問題がある。

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

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


0

GDゲントの解決

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

ここにリンクがありますATI Radeon

Catalyst™12.7ベータドライバーへのリンクをありがとうございます。 私は長い間Googleを検索しており、この迷惑な問題に簡単に答えられる人はいませんでした。

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

すべてがおかしな話です!

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.