Audio HDMI berhenti setelah TV dimatikan

10

Setelah pembaruan 12,04, audio HDMI saya berhenti berfungsi kapan saja saya mematikan monitor ke-2 saya (TV plasma). Kartu grafis adalah Radeon 6800 yang memiliki DVI ke monitor pertama, HDMI ke penerima yang TV-nya dapatkan Audio / Video. Audio selalu melalui suara penerima saya.

Hal-hal berfungsi dengan baik selama boot dengan TV dan Receiver menyala. Matikan TV dan audio HDMI BART akan hilang, dan opsi HDMI menghilang dari menu suara. Saya memiliki masalah HDMI sesekali dengan 11,10 tetapi menyalakan / mematikan TV akan memperbaiki suara. Bagaimana saya bisa melakukan hardcode hal-hal sehingga selalu menggunakan HDMI dari audio? Saya menduga TV mengirimkan sinyal setelah 12,04 sedang mendengarkan. Menghidupkan TV kembali TIDAK menyelesaikan ini, dan saya sarankan memiliki kemampuan untuk menimpa "fitur" baru ini melalui menu suara.

Ryan
sumber
ada laporan bug - tetapi tidak ada solusi pada launchpad: bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/1001842
protagonis hiro

Jawaban:

9

Saya mengalami masalah ini. Saya tidak dapat menemukan perbaikan yang layak, tetapi saya harus mengatasinya. Perhatikan bahwa ini adalah peretasan yang mengerikan, tetapi berhasil bagi saya sampai masalah root diperbaiki - semoga ini membantu orang lain. Setiap 5 detik ia mengecek dmesg untuk kesalahan koneksi HDMI dan jika ternyata salah itu me-restart koneksi.

Saya membuat skrip pengawas ini - ganti "DFP1" dengan nama output Anda (dapatkan dari 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)

Jika ada yang tahu cara yang lebih baik untuk mendeteksi kesalahan (dengan driver katalis), beri tahu saya. (Dengan driver opensource saya pikir Anda dapat memicu bit reset kode pada acara drm acpi jika Anda ingin melakukan beberapa scripting).

Saya memulainya dengan menambahkan ini ke /etc/rc.local: (ubah "xbmc" menjadi nama pengguna yang Anda masuki sebagai)

su xbmc -c 'python /home/USERNAME/src/check_hdmi.py &'
Vanilla_Brys
sumber
Script berfungsi tetapi tidak otomatisasi dengan rc.local. Bisakah Anda menunjukkan bagaimana seharusnya rc.local?
ECII
Apakah boleh menambahkan skrip ke cron dan membiarkannya mengeksekusi setiap menit?
ECII
Anda bisa dimasukkan ke dalam cron. Anda harus menghapus seluruh while True:blok dan menggantinya dengan sederhana doTest(). Mungkin perlu sedikit perhatian - pastikan dijalankan di cron pengguna yang masuk (bukan root).
Vanilla_Brys
Rc.local saya mengandung beberapa hal. Di bagian bawah ada ini: su xbmc -c 'python /home/andy/src/check_hdmi.py &'kemudian di baris baru exit 0. Sudahkah Anda mengganti xbmcdengan nama pengguna yang benar?
Vanilla_Brys
Jika Anda menggunakan lingkungan desktop normal (saya menggunakan xbmc, jadi saya tidak), Anda mungkin bisa menambahkan skrip python ke aplikasi startup Anda.
Vanilla_Brys
4

Sementara itu sementara laporan bug membaik, saya perhatikan kombinasi tombol cepat yang akan menghemat beberapa sakit kepala.

Cukup tarik keluar ke ttydan kembali ke GUI Anda:

CTRL+ ALT+ F1 (atau apa pun dari F1hingga F6)

kemudian

CTRL+ ALT+ F8(Anda mungkin perlu menggunakan F7alih-alih F8. Salah satunya akan mengembalikan Anda ke desktop Anda, yang lain akan memberi Anda layar hitam dan kursor)

Tampaknya sinkronisasi dibuat kembali ketika kembali ke GUI.

Ini jauh lebih cepat daripada logout dan kembali, dan Anda program dll tetap terbuka.

Kombinasi tombol. Selesai Kerumitan gratis.

Ini tentu saja bukan perbaikan. Ini hanya kombinasi keyboard cepat untuk mengelabui HDMI untuk menyelaraskan kembali dan dengan demikian mendapatkan audio kembali.

Ini bekerja pada saya.
Adakah yang mau mematikan TV mereka sebentar dan mencobanya sendiri?

pengguna85894
sumber
2

Saya perhatikan bahwa jika Anda mematikan output ke TV dan menyalakannya kembali juga me-reset suara (Radeon HD6670). Perintah aticonfig mengatur tampilan untuk mengisi layar di TV saya. Anda perlu mengetahui nama output Anda dengan menjalankan "xrandr -q" ubah "DFP1" ke apa yang terdaftar sebelum "CONNECTED" pada output dari perintah (itu case sensitive). Satu-satunya masalah dengan ini pada pengaturan saya adalah bahwa beberapa jendela melompat bagian jauh dari bagian atas layar ketika menjalankan bagian on / off dari skrip (Alt-Tarik kembali ke bawah jika itu terjadi pada Anda). Mungkin seseorang dapat memberi kode solusi / solusi yang lebih baik.

#! /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
Viper2
sumber
1

Permasalahan yang sama. Satu-satunya petunjuk yang saya miliki adalah setelah berlaripactl 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

Tampaknya mematikan monitor menonaktifkan wastafel? dan tidak mengaktifkan kembali ketika tv dihidupkan lagi. HDMI-output-0: HDMI / DisplayPort (prioritas: 5900, tidak tersedia )

" tidak tersedia " harus " tersedia "

Saya berasumsi Anda menggunakan kartu ATI dengan fglrx. mencoba

aticonfig --acpi-services=off

Tidak yakin apakah pengaturan ini tahan. Jika demikian perintah untuk menghidupkan kembali adalah.

aticonfig --acpi-services=on

Saya ragu ini akan berhasil. EDIT> (Tidak)

Sebagai user53740 diposting. Logout / in mengembalikan audio. Mengaktifkan atau menonaktifkan monitor menonaktifkan audio HDMI. Jika Anda benar-benar tidak ingin keluar, Anda dapat menghapus plug plug HDMI lagi dan audio HDMI akan dikembalikan. Jangan terlalu sering melakukannya. Hanya ketika Anda putus asa.

Ada utas di sini dan laporan bug yang menghindar di sini

EDIT> Solusi lain pergi ke Pengaturan Sistem> Tampilan. Kemudian klik terapkan tanpa mengubah apa pun.

pengguna55138
sumber
1

Buka Pengaturan Sistem → Tampilan

Ubah resolusi, terapkan, lalu ubah kembali.

Semua Pengaturan → Suara → pilih HDMI

Nicolai
sumber
0

Memiliki masalah yang sama.

Tentu saja, driver ATI mungkin menjadi penyebab masalah, lagi. Milik saya adalah Radeon HD 6xxx.

Logout dan kembali mendapatkan suara kembali, tapi saya kira mungkin ada solusi lain yang lebih sederhana.

Xamidovic
sumber
0

Tuan-tuan GD yang dipecahkan

Punya masalah yang sama hanya http saya dengan ATI 5770 terhubung ke penerima dan kemudian ke TV. Mengatasi masalah ini dengan mengunduh dan menginstal paket driver BETA terbaru dari situs web AMD.

Inilah tautan ATI Radeon

Terima kasih banyak atas tautannya ke Driver Catalyst ™ 12,7 Beta. Saya telah mencari Google sejak lama dan tidak ada yang punya jawaban mudah untuk masalah yang menjengkelkan ini.

Tetapi setelah menginstal AMD Catalyst 12.7 Beta Driver untuk Windows ® 7 dan Windows Vista®

semuanya keren-dory!

Terima kasih banyak.:)

John
sumber
0

Ini berfungsi untuk saya (kartu grafis Intel HD): killall pulseaudio

(ditemukan di sini: /ubuntu//a/176276/45779 )

Eugen Labun
sumber