Âm thanh HDMI dừng sau khi tắt TV


10

Sau bản cập nhật 12.04, âm thanh HDMI của tôi ngừng hoạt động bất cứ khi nào tôi tắt màn hình thứ 2 (TV plasma). Card đồ họa là Radeon 6800 có màn hình HDMI out to 1st, HDMI out to thu mà TV nhận được là Audio / Video. Âm thanh luôn luôn thông qua âm thanh thu của tôi.

Mọi thứ hoạt động tốt miễn là nó khởi động với TV và Bộ thu. Tắt TV và âm thanh HDMI của BART sẽ biến mất và tùy chọn HDMI sẽ biến mất khỏi menu âm thanh. Tôi thỉnh thoảng gặp sự cố HDMI với 11.10 nhưng bật / tắt TV sẽ khắc phục âm thanh. Làm cách nào tôi có thể mã hóa mọi thứ để nó luôn sử dụng HDMI ngoài âm thanh? Tôi nghi ngờ TV đang gửi tín hiệu cho biết ngày 12.04 đang lắng nghe. Bật lại TV KHÔNG giải quyết vấn đề này và tôi khuyên bạn nên có khả năng ghi đè "tính năng" mới này thông qua menu âm thanh.



có một báo cáo lỗi - nhưng không có giải pháp nào trên launchpad: bug.launchpad.net/ubfox/+source/fglrx-installer/+orms/1001842
nhân vật chính hiro

Câu trả lời:


9

Tôi đã có vấn đề này. Tôi không thể tìm thấy một sửa chữa tốt, nhưng tôi có công việc này xung quanh. Lưu ý rằng đó là một vụ hack khủng khiếp nhưng nó thực hiện công việc cho tôi cho đến khi vấn đề gốc được khắc phục - hy vọng nó sẽ giúp được người khác. Cứ sau 5 giây, nó sẽ kiểm tra lỗi kết nối HDMI và nếu tìm thấy lỗi, nó sẽ khởi động lại kết nối.

Tôi đã tạo tập lệnh theo dõi này - thay thế "DFP1" bằng tên đầu ra của bạn (lấy từ 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)

Nếu bất cứ ai biết một cách tốt hơn để phát hiện lỗi (với trình điều khiển xúc tác), xin vui lòng cho tôi biết. (Với trình điều khiển mã nguồn mở, tôi nghĩ rằng bạn có thể kích hoạt bit thiết lập lại mã trên các sự kiện drm acpi nếu bạn muốn thực hiện một số tập lệnh).

Tôi bắt đầu nó bằng cách thêm nó vào /etc/rc.local: (thay đổi "xbmc" thành tên người dùng mà bạn đăng nhập)

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

Kịch bản hoạt động nhưng không tự động hóa với RC.local. Bạn có thể vui lòng cho thấy RC.local sẽ trông như thế nào không?
ECII

Có thể thêm tập lệnh vào cron và để nó thực thi mỗi phút hay không?
ECII

Bạn có thể đưa vào cron. Bạn sẽ phải xóa toàn bộ while True:khối và thay thế nó một cách đơn giản doTest(). Nó có thể mất một số tiếng leng keng - đảm bảo rằng nó chạy trong cron người dùng đã đăng nhập (không phải root).
Vanilla_Brys

RC.local của tôi chứa một vài điều. Ở phía dưới nó có cái này: su xbmc -c 'python /home/andy/src/check_hdmi.py &'sau đó trên một dòng mới exit 0. Bạn đã thay thế xbmcbằng tên người dùng chính xác?
Vanilla_Brys

Nếu bạn đang sử dụng môi trường máy tính để bàn bình thường (tôi đang sử dụng xbmc, vì vậy tôi không), có lẽ bạn chỉ cần thêm tập lệnh python vào các ứng dụng khởi động của mình.
Vanilla_Brys

4

Trong khi đó, trong khi báo cáo lỗi được xử lý tốt, tôi đã nhận thấy một tổ hợp nút nhanh sẽ giúp tiết kiệm một vài vấn đề đau đầu.

Chỉ cần kéo ra ttyvà quay lại GUI của bạn:

CTRL+ ALT+ F1 (hoặc bất cứ thứ gì từ F1đến F6)

sau đó

CTRL+ ALT+ F8(bạn có thể cần phải sử dụng F7thay vì F8. Một trong số họ sẽ đưa bạn trở lại máy tính để bàn của bạn, người còn lại sẽ cung cấp cho bạn màn hình đen và con trỏ)

Có vẻ như đồng bộ hóa được thiết lập lại khi quay lại GUI.

Việc này nhanh hơn nhiều so với đăng xuất và đăng nhập lại, và các chương trình của bạn, v.v. vẫn mở.

Nút kết hợp. Làm xong. Hầm miễn phí.

Tất nhiên đây không phải là một sửa chữa. Đây chỉ là một sự kết hợp bàn phím nhanh để lừa HDMI để đồng bộ hóa lại và do đó lấy lại âm thanh.

Nó hoạt động vào cuối của tôi.
Bất cứ ai khác muốn tắt TV của họ trong một giây và tự thử nó?


2

Tôi nhận thấy rằng nếu bạn tắt đầu ra cho TV và bật lại thì nó cũng đặt lại âm thanh (Radeon HD6670). Các lệnh aticonfig đặt màn hình hiển thị để lấp đầy màn hình trên TV của tôi. Bạn cần tìm ra tên đầu ra của mình bằng cách chạy "xrandr -q" thay đổi "DFP1" thành tên được liệt kê trước "KẾT NỐI" trong đầu ra của lệnh (phân biệt chữ hoa chữ thường). Vấn đề duy nhất với thiết lập của tôi là một số cửa sổ nhảy ra khỏi phần trên cùng của màn hình khi chạy phần bật / tắt của tập lệnh (Alt-Kéo chúng xuống nếu nó xảy ra với bạn). Có lẽ ai đó có thể mã một giải pháp / giải pháp tốt hơn.

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

Vấn đề tương tự. Gợi ý duy nhất tôi có là sau khi chạypactl 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

Có vẻ như tắt màn hình vô hiệu hóa chìm? và không bật lại khi tv được bật lại. hdmi-output-0: HDMI / DisplayPort (ưu tiên: 5900, không khả dụng )

" không có sẵn " nên " có sẵn "

Tôi giả sử bạn đang sử dụng thẻ ATI với fglrx. thử

aticonfig --acpi-services=off

Không chắc chắn rằng thiết lập này là liên tục. Nếu vậy lệnh để bật lại là.

aticonfig --acpi-services=on

Tôi nghi ngờ điều này sẽ làm việc. EDIT> (Nó không)

Như người dùng53740 đã đăng. Đăng xuất / khôi phục âm thanh. Bật hoặc tắt màn hình sẽ tắt âm thanh HDMI. Nếu bạn thực sự không muốn đăng xuất, bạn có thể xóa lại plugin hdmi và âm thanh hdmi sẽ được khôi phục. Đừng làm điều đó quá thường xuyên. Chỉ khi bạn tuyệt vọng.

Có một chủ đề ở đây ond một báo cáo lỗi né tránh ở đây

EDIT> Một cách giải quyết khác là vào Cài đặt hệ thống> Hiển thị. Sau đó bấm áp dụng mà không thay đổi bất cứ điều gì.


1

Chuyển đến Cài đặt hệ thống → Hiển thị

Thay đổi độ phân giải, áp dụng, sau đó thay đổi lại.

Tất cả cài đặt → Âm thanh → chọn HDMI


0

Có cùng một vấn đề.

Tất nhiên, trình điều khiển ATI có thể là nguyên nhân của vấn đề, một lần nữa. Của tôi là Radeon HD 6xxx.

Đăng xuất và quay lại nhận được âm thanh trở lại, nhưng tôi đoán rằng có thể có một giải pháp đơn giản khác.


0

Gents đã giải quyết

Có vấn đề tương tự chỉ http của tôi với ATI 5770 được kết nối với máy thu và sau đó với TV. Giải quyết vấn đề này bằng cách tải xuống và cài đặt gói trình điều khiển BETA mới nhất từ ​​trang web AMD.

Đây là liên kết ATI Radeon

Cảm ơn bạn rất nhiều vì liên kết đến Trình điều khiển Catalyst ™ 12.7 Beta mà tôi đã tìm kiếm Google trong một thời gian dài và không ai có câu trả lời dễ dàng cho vấn đề gây phiền nhiễu này.

Nhưng sau khi cài đặt Trình điều khiển AMD Catalyst 12.7 Beta cho Windows ® 7 và Windows Vista®

tất cả mọi thứ là hunky-dory!

Nhiều nghĩa vụ.:)


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.