O áudio HDMI pára após a TV ser desligada

10

Após a atualização 12.04, meu áudio HDMI para de funcionar a qualquer momento. Desligo o segundo monitor (TV de plasma). Placa gráfica é uma Radeon 6800 que tem DVI para o primeiro monitor, saída HDMI para o receptor que a TV recebe é Audio / Video. O áudio é sempre através do som do meu receptor.

As coisas funcionam bem, desde que inicialize com a TV e o receptor ligados. Desligue a TV e o áudio HDMI do BART desaparecerá, e a opção HDMI desaparecerá do menu de som. Eu tive um problema de HDMI ocasional com 11.10, mas ligar / desligar a TV consertaria o som. Como posso codificar coisas para que sempre use HDMI sem áudio? Eu suspeito que a TV está enviando um sinal de que 12.04 está agora escutando. Ligar a TV NÃO resolve isso, e eu sugiro ter a capacidade de substituir este novo "recurso" via menu de som.

    
por Ryan 08.05.2012 / 04:41

8 respostas

9

Eu tenho tido esse problema. Eu não consegui encontrar uma solução decente, mas tenho esse trabalho por aí. Note que é um hack horrível, mas faz o trabalho para mim até que o problema da raiz seja resolvido - espero que ajude alguém. A cada 5 segundos ele verifica o dmesg para erros de conexão HDMI e, se encontrar um, reinicia a conexão.

Eu fiz este script de watchdog - substitua "DFP1" com o nome da sua saída (obtenha do 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)

Se alguém souber uma maneira melhor de detectar o erro (com drivers de catalisador), por favor me avise. (Com os drivers de código aberto acho que você poderia acionar o bit de reconfiguração do código em eventos drm acpi se você quisesse fazer algum script).

Eu inicio adicionando isto em /etc/rc.local: (mude "xbmc" para o nome de usuário que você logou como)

su xbmc -c 'python /home/USERNAME/src/check_hdmi.py &'
    
por Vanilla_Brys 21.05.2012 / 10:31
4

Nesse meio tempo, enquanto o relatório de erros fica bom, notei uma combinação rápida de botões que salvará algumas dores de cabeça.

Basta puxar para fora em tty e voltar para sua GUI:

CTRL + ALT + F1 (ou qualquer coisa de F1 para F6 )

então

CTRL + ALT + F8 (talvez seja necessário usar F7 em vez de F8 . Um deles irá retornar você para o seu desktop, o outro lhe dará uma tela preta e um cursor)

Parece que a sincronização é restabelecida ao retornar à GUI.

Isso é muito mais rápido do que sair e voltar, e seus programas etc. permanecem abertos.

Combinação de botões. Feito. Sem complicações.

Isto, obviamente, não é uma correção. É apenas uma combinação rápida de teclado para enganar o HDMI para re-sincronizar e, assim, recuperar o áudio.

Funciona do meu jeito.
Alguém mais quer desligar a TV por um segundo e tentar por conta própria?

    
por user85894 27.08.2012 / 17:07
2

Eu notei que se você desligar a saída para a TV e ligá-la novamente, ela também reinicia o som (Radeon HD6670). Os comandos aticonfig definem a tela para preencher a tela da minha TV. Você precisa descobrir o nome da saída executando "xrandr -q" e altere "DFP1" para o que está listado antes de "CONNECTED" na saída do comando (é sensível a maiúsculas e minúsculas). O único problema com isso na minha configuração é que algumas janelas ficam afastadas da parte superior da tela ao executar a parte on / off do script (Alt-Arraste-as para baixo se isso acontecer com você). Talvez alguém possa codificar uma solução / solução alternativa melhor.

#! /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
    
por Viper2 04.07.2012 / 03:55
1

O mesmo problema. A única dica que eu tenho é depois de executar 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

Parece que desligar o monitor desativa o coletor? e não reabilita quando a TV é ligada novamente. hdmi-output-0: HDMI / DisplayPort (prioridade: 5900, não disponível )

" não disponível " deve estar " disponível "

Suponho que você esteja usando uma placa ATI com fglrx. tente

aticonfig --acpi-services=off

Não tenho certeza se essa configuração é persistente. Em caso afirmativo, o comando para ligar novamente é.

aticonfig --acpi-services=on

Eu duvido que isso funcione. EDITAR (não foi)

Como user53740 postou. Logout / in restaura o áudio. Ligar ou desligar o monitor desativa o áudio HDMI. Se você realmente não quiser logout, você pode remover um plug-in do hdmi novamente e o áudio HDMI será restaurado. Não faça isso com muita frequência. Só quando você está desesperado.

Existe um tópico aqui e um relatório de bug esquivo aqui

EDITAR > Outra solução alternativa é ir para Configurações do Sistema > Display. Em seguida, clique em aplicar sem alterar nada.

    
por user55138 19.05.2012 / 09:56
1

Vá para Configurações do sistema → Exibe

Altere a resolução, aplique e altere-a novamente.

Todas as configurações → Som → selecione HDMI

    
por Nicolai 01.07.2012 / 23:21
0

Tendo o mesmo problema.

Claro, os drivers da ATI são provavelmente a causa dos problemas, novamente. O meu é o Radeon HD 6xxx.

Efetuar logout e back in recupera o som, mas acho que pode haver outra solução mais simples.

    
por Xamidovic 19.05.2012 / 18:07
0

Gents GD resolvidos

Tive o mesmo problema apenas o meu http com o ATI 5770 foi conectado ao receptor e depois à TV. Resolveu este problema baixando e instalando o pacote de driver BETA mais recente do site da AMD.

Aqui está o link ATI Radeon

Muito obrigado pelo link para o Driver do Catalyst ™ 12.7 Beta Eu estava procurando no Google há muito tempo e ninguém tinha uma resposta fácil para esse problema chato.

Mas depois de instalar o Driver AMD Catalyst 12.7 Beta para Windows® 7 e Windows Vista®

tudo é ótimo!

Muito obrigado.:)

    
por John 12.08.2012 / 12:21
0

Isso funciona para mim (placa gráfica Intel HD): killall pulseaudio

(encontrado aqui: link )

    
por Eugen Labun 26.12.2012 / 18:18