HDMI Audio припиняється після вимкнення телевізора


10

Після того, як 12.04 оновлення звуку HDMI перестане працювати, коли я вимикаю свій 2-й монітор (плазмовий телевізор). Графічна карта - це Radeon 6800, який має вихід DVI на 1-й монітор, HDMI на приймач, на якому телевізор отримує аудіо / відео. Аудіо завжди проходить через звук мого приймача.

Речі працюють добре, доки він завантажений із телевізором та приймачем. Вимкніть телевізор та аудіо HDMI від BART зникне, а параметр HDMI зникне з меню звуку. У мене виникли випадкові проблеми з HDMI з 11.10, але включення / вимкнення телевізора виправить звук. Як я можу жорстко кодувати речі, щоб він завжди використовував HDMI без аудіо? Я підозрюю, що телевізор надсилає сигнал про те, що 12.04 зараз його слухають. Увімкнення телевізора НЕ вирішує це питання, і я б запропонував можливість змінити цю нову "функцію" за допомогою звукового меню.



є звіт про помилки - але рішення щодо запуску немає рішення: bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/1001842
головний герой hiro

Відповіді:


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)

Якщо хтось знає кращий спосіб виявити помилку (з драйверами каталізатора), будь ласка, дайте мені знати. (З драйверами відкритих джерел, я думаю, ви можете запустити біт скидання коду на події drm acpi, якщо хочете зробити деякі сценарії).

Я починаю це, додавши це до /etc/rc.local: (змінити "xbmc" до імені користувача, яке ви входите як)

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

Сценарій працює, але не є автоматизацією з rc.local. Чи можете ви покажіть, як має виглядати rc.local?
ECII

Чи було б добре додати скрипт до крона і нехай він виконує щохвилини або близько того?
ECII

Ви можете поставити в cron. Вам доведеться видалити весь while True:блок і замінити його просто doTest(). Це може зайняти деяке майстерність - переконайтеся, що воно запущено в зареєстрованому користувачем cron (не root).
Vanilla_Brys

Мій rc.local містить кілька речей. У нижній частині це так: su xbmc -c 'python /home/andy/src/check_hdmi.py &'потім на новому рядку exit 0. Ви замінили xbmcправильне ім’я користувача?
Vanilla_Brys

Якщо ви використовуєте звичайне середовище для робочого столу (я використовую xbmc, тому я цього не роблю), ви, ймовірно, можете просто додати сценарій python до ваших програм запуску.
Vanilla_Brys

4

Тим часом, поки звіт про помилку добре переходить, я помітив швидку комбінацію кнопок, яка врятує від декількох головних болів.

Просто витягніть у ttyсвій графічний інтерфейс і поверніть його назад:

CTRL+ ALT+ F1 (або що-небудь від F1до F6)

тоді

CTRL+ ALT+ F8(можливо, вам доведеться використовувати F7замість F8. Один з них поверне вас на робочий стіл, інший подарує вам чорний екран і курсор)

Здається, синхронізація відновлюється при поверненні до GUI.

Це набагато швидше, ніж вихід із системи та вхід назад, а ви програми тощо залишаєтесь відкритими.

Комбінація кнопок. Зроблено. Без клопоту.

Звичайно, це не виправлення. Це просто швидка комбінація клавіатур, щоб підманути HDMI повторно синхронізувати і, таким чином, повернути аудіо.

Це працює на моєму кінці.
Хтось ще хоче вимкнути телевізор на секунду і спробувати його сам?


2

Я помітив, що якщо вимкнути вихід на телевізор і повернути його назад, він також скине звук (Radeon HD6670). Команди aticonfig встановлюють дисплей для заповнення екрана на моєму телевізорі. Потрібно дізнатися своє вихідне ім'я, запустивши "xrandr -q" змінити "DFP1" на те, що вказано перед "З'ЄДНАНО" у висновку команди (це залежно від регістру). Єдина проблема з цим у моїй настройці полягає в тому, що деякі вікна підскакують частину вгору екрану під час запуску частини ввімкнення / вимкнення сценарію (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, недоступно )

" недоступно " має бути " доступно "

Я припускаю, що ви використовуєте карту ATI з fglrx. спробуйте

aticonfig --acpi-services=off

Не впевнений, що ця настройка зберігається. Якщо так, команда знову ввімкнутись.

aticonfig --acpi-services=on

Сумніваюся, це спрацює. Редагувати> (не сталося)

Як розмістив user53740 Вихід / вхід відновлює звук. Увімкнення або вимкнення монітора вимикає звук HDMI. Якщо ви дійсно не хочете виходити з програми, ви можете знову вийняти hdmi-плагін, і звук hdmi відновиться. Не робіть це занадто часто. Тільки тоді, коли ти відчайдушний.

Існує потік тут Зонд в dodgey повідомлення про помилку тут

EDIT> Ще одне вирішення - перейти до Налаштування системи> Дисплей. Потім натисніть кнопку застосувати, не змінюючи нічого.


1

Перейдіть до Налаштування системи → Дисплеї

Змініть роздільну здатність, застосуйте, а потім змініть її назад.

Усі настройки → Звук → виберіть HDMI


0

З тією ж проблемою.

Звичайно, водії ATI, ймовірно, знову ж таки є причиною проблем. Моя - Radeon HD 6xxx.

Вихід із системи та повернення назад отримують звук, але я думаю, що може бути ще просте рішення.


0

Розв’язав Г.Д.Гентс

Була така ж проблема, тільки мій http із ATI 5770 був підключений до приймача, а потім до телевізора. Вирішили цю проблему, завантаживши та встановивши останній пакет драйверів BETA з веб-сайту AMD.

Ось посилання ATI Radeon

Дуже дякую за посилання на бета-версію Catalyst ™ 12.7. Я довго шукав Google, і ніхто не мав просту відповідь на цю набридливу проблему.

Але після встановлення бета-драйвера AMD Catalyst 12.7 для Windows ® 7 та Windows Vista®

все хунк-дорі!

Дуже вдячний.:)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.