Rya*_*yan 11 sound hdmi radeon 12.04
在 12.04 更新后,只要我关闭第二台显示器(等离子电视),我的 HDMI 音频就会停止工作。显卡是 Radeon 6800,它有 DVI 输出到第一台显示器,HDMI 输出到接收器,电视接收它的音频/视频。音频总是通过我的接收器声音。
只要它在电视和接收器打开的情况下启动,事情就可以正常工作。关闭电视,BART 的 HDMI 音频将消失,并且 HDMI 选项从声音菜单中消失。我在 11.10 上偶尔会遇到 HDMI 问题,但打开/关闭电视会修复声音。我怎样才能硬编码东西,以便它总是使用 HDMI 音频?我怀疑电视正在发送 12.04 现在正在收听的信号。重新打开电视并不能解决这个问题,我建议能够通过声音菜单覆盖这个新的“功能”。
小智 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)
Run Code Online (Sandbox Code Playgroud)
如果有人知道检测错误的更好方法(使用催化剂驱动程序),请告诉我。(对于开源驱动程序,我认为如果您想编写一些脚本,您可以在 drm acpi 事件上触发代码的重置位)。
我通过将其添加到 /etc/rc.local 来启动它:(将“xbmc”更改为您登录的用户名)
su xbmc -c 'python /home/USERNAME/src/check_hdmi.py &'
Run Code Online (Sandbox Code Playgroud)
小智 6
与此同时,虽然错误报告得到了很好的处理,但我注意到一个快速按钮组合可以省去一些麻烦。
只需拉出 atty并返回到您的 GUI:
CTRL+ ALT+ F1 (或从任何F1给F6)
然后
CTRL+ ALT+ F8(您可能需要使用F7而不是F8。其中一个将使您返回到桌面,另一个将给您一个黑屏和一个光标)
返回 GUI 时似乎重新建立了同步。
这比注销并重新登录要快得多,并且您的程序等保持打开状态。
按钮组合。完毕。无忧无虑。
这当然不是修复。这只是一个快速的键盘组合来欺骗 HDMI 重新同步,从而恢复音频。
它对我有用。
还有其他人想关闭电视并自己尝试一下吗?
同样的问题。我得到的唯一提示是跑步后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
Run Code Online (Sandbox Code Playgroud)
关闭显示器似乎会禁用接收器?并且当电视再次打开时不会重新启用。hdmi-output-0:HDMI / DisplayPort(优先级:5900,不可用)
“不可用”应为“可用”
我假设您使用的是带有 fglrx 的 ATI 卡。尝试
aticonfig --acpi-services=off
Run Code Online (Sandbox Code Playgroud)
不确定此设置是否持续存在。如果是这样,则再次打开的命令是。
aticonfig --acpi-services=on
Run Code Online (Sandbox Code Playgroud)
我怀疑这会起作用。编辑>(没有)
正如用户53740 所发布的。注销/登录恢复音频。打开或关闭显示器会禁用 HDMI 音频。如果您确实不想注销,可以再次删除 hdmi 插头插件,hdmi 音频将恢复。不要太频繁地这样做。只有当你绝望的时候。
编辑>另一种解决方法是转到“系统设置”>“显示”。然后单击“应用”,无需更改任何内容。
| 归档时间: |
|
| 查看次数: |
12242 次 |
| 最近记录: |