电视关闭后,HDMI音频停止

在12.04更新后,我的HDMI音频会在我关闭第二台显示器(等离子电视)的任何时候停止工作。 显卡是Radeon 6800,它有DVI输出到第一个显示器,HDMI输出接收器,电视得到它的音频/video。 音频始终通过我的接收器声音。

只要它与电视和接收器一起启动,事情就可以正常工作。 关闭电视,BART的HDMI音频将消失,HDMI选项将从声音菜单中消失。 我偶尔会遇到11.10的HDMI问题,但打开/关闭电视会修复声音。 如何硬编码以使其始终使用HDMI音频? 我怀疑电视正在发送信号,因为12.04现在正在收听。 重新打开电视并没有解决这个问题,我建议能够通过声音菜单覆盖这个新的“function”。

我一直有这个问题。 我找不到合适的解决方案,但我有这个工作。 请注意,这是一个可怕的黑客,但它确实为我做的工作,直到根本问题得到解决 – 希望它会帮助其他人。 每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 &' 

与此同时,虽然错误报告得到了很好的解决,但我注意到了一个快速按钮组合,可以省去一些麻烦。

只需拉出一个tty并返回到GUI:

CTRL + ALT + F1 (或从F1F6的任何内容)

然后

CTRL + ALT + F8 (您可能需要使用F7而不是F8 。其中一个将返回您的桌面,另一个将为您提供黑屏和光标)

返回GUI时似乎重新建立同步。

这比退出和退回要快得多,而你的程序等仍然是开放的。

按钮组合。 完成。 无忧无虑。

这当然不是解决办法。 这只是一个快速的键盘组合,可以让HDMI重新同步,从而恢复音频。

它适用于我的目的。
其他人想要关闭电视一秒钟并亲自尝试一下吗?

我注意到如果关闭电视输出并将其重新打开,它也会重置声音(Radeon HD6670)。 aticonfig命令将显示设置为填满电视屏幕。 您需要通过运行“xrandr -q”找到输出名称,将“DFP1”更改为命令输出中“CONNECTED”之前列出的内容(区分大小写)。 在我的设置中唯一的问题是,当运行脚本的开/关部分时,某些窗口会从屏幕顶部跳出一部分(如果它发生在你身上,则将它们向下拖动它们)。 也许有人可以编写更好的解决方案/解决方法。

 #! /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 

同样的问题。 我得到的唯一提示是在运行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 

我怀疑这会奏效。 编辑>(它没有)

正如用户53740发布的那样。 注销/恢复音频。 打开或关闭显示器会禁用HDMI音频。 如果你真的不想退出,你可以再次删除hdmi插件插件,并恢复hdmi音频。 不要经常这样做。 只有当你绝望的时候。

这里有一个线程, 这里有一个有趣的错误报告

编辑> 另一种解决方法是进入系统设置>显示。 然后单击“应用”而不更改任

进入系统设置→显示

更改分辨率,应用,然后将其更改回来。

所有设置→声音→选择HDMI

有同样的问题。

当然,ATI驱动程序可能也是问题的原因。 我的是Radeon HD 6xxx。

退出并返回可以恢复声音,但我想可能还有另一个更简单的解决方案。

解决了GD Gents

有同样的问题,只有我的ATI 5770的http连接到接收器,然后连接到电视。 通过从AMD网站下载并安装最新的BETA驱动程序包解决了这个问题。

这是链接ATI Radeon

非常感谢您关于Catalyst™12.7 Beta驱动程序的链接,我已经在Google上搜索了很长时间,没有人能够轻松解决这个恼人的问题。

但在安装适用于Windows®7和WindowsVista®的AMD Catalyst 12.7 Beta驱动程序之后

一切都很笨拙!

非常感谢。:)

这适用于我(英特尔高清显卡): killall pulseaudio

(在此处找到: https : //askubuntu.com/a/176276/45779 )