เสียง HDMI หยุดลงหลังจากปิดทีวี


10

หลังจากอัปเดต 12.04 เสียง HDMI ของฉันหยุดทำงานเมื่อใดก็ตามที่ฉันปิดจอที่ 2 (พลาสมาทีวี) การ์ดกราฟิกเป็น Radeon 6800 ซึ่งมี DVI ออกไปยังจอภาพที่ 1, HDMI ออกไปยังตัวรับสัญญาณซึ่งทีวีรับเสียง / วิดีโอ เสียงอยู่เสมอผ่านเสียงของตัวรับสัญญาณของฉัน

สิ่งต่าง ๆ ทำงานได้ดีตราบใดที่บู๊ตกับทีวีและตัวรับสัญญาณ ปิดทีวีและเสียง HDMI ของ BART จะหายไปและตัวเลือก HDMI จะหายไปจากเมนูเสียง ฉันมีปัญหา HDMI เป็นครั้งคราวด้วย 11.10 แต่การเปิด / ปิดทีวีจะแก้ไขเสียง ฉันจะฮาร์ดโค้ดสิ่งต่าง ๆ เพื่อให้มันใช้ HDMI เป็นเสียงได้อย่างไร ฉันสงสัยว่าทีวีกำลังส่งสัญญาณเมื่อ 12.04 กำลังฟังอยู่ การเปิดทีวีอีกครั้งไม่สามารถแก้ไขปัญหานี้ได้และฉันขอแนะนำให้มีความสามารถในการแทนที่ "คุณสมบัติ" ใหม่นี้ผ่านเมนูเสียง



มีรายงานข้อผิดพลาด - แต่ไม่มีวิธีแก้ปัญหาสำหรับ launchpad: บั๊ก.
hiro ตัวเอก

คำตอบ:


9

ฉันมีปัญหานี้แล้ว ฉันไม่พบวิธีแก้ไขที่เหมาะสม แต่ฉันได้แก้ไขมันแล้ว โปรดทราบว่ามันเป็นแฮ็คที่น่ากลัว แต่ทำงานให้ฉันจนกว่าปัญหารากจะได้รับการแก้ไข - หวังว่ามันจะช่วยคนอื่นได้ ตรวจสอบข้อผิดพลาดในการเชื่อมต่อ HDMI ทุก ๆ 5 วินาทีและหากพบว่ามีข้อผิดพลาดเกิดขึ้น

ฉันสร้างสคริปต์เฝ้าดูนี้ - แทนที่ "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)

หากใครรู้วิธีที่ดีกว่าในการตรวจสอบข้อผิดพลาด (พร้อมไดรเวอร์ catalyst) โปรดแจ้งให้เราทราบ (ด้วยไดร์เวอร์ opensource ฉันคิดว่าคุณสามารถเรียกใช้บิตรีเซ็ตของรหัสในเหตุการณ์ drm acpi หากคุณต้องการทำสคริปต์บางอย่าง)

ฉันเริ่มต้นด้วยการเพิ่มสิ่งนี้ลงใน /etc/rc.local: (เปลี่ยน "xbmc" เป็นชื่อผู้ใช้ที่คุณลงชื่อเข้าใช้ด้วย)

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

สคริปต์ใช้งานได้ แต่ไม่ใช่ระบบอัตโนมัติกับ rc.local คุณช่วยกรุณาแสดงให้เห็นว่า rc.local ควรมีลักษณะอย่างไร
ECII

มันจะตกลงเพื่อเพิ่มสคริปต์เพื่อ cron และให้มันรันทุกนาทีหรือดังนั้น
ECII

คุณสามารถใส่ลงใน cron คุณจะต้องลบทั้งบล็อกและแทนที่ด้วยเพียงwhile True: doTest()อาจต้องใช้การแก้ไขบางอย่าง - ตรวจสอบให้แน่ใจว่ามันทำงานใน cron ผู้ใช้ที่ล็อกอิน (ไม่ใช่รูท)
Vanilla_Brys

rc.local ของฉันมีบางสิ่ง ที่ด้านล่างก็มีนี้แล้วในบรรทัดใหม่su xbmc -c 'python /home/andy/src/check_hdmi.py &' exit 0คุณแทนที่xbmcด้วยชื่อผู้ใช้ที่ถูกต้องหรือไม่
Vanilla_Brys

หากคุณใช้สภาพแวดล้อมเดสก์ท็อปปกติ (ฉันใช้ xbmc ไม่ใช่ฉัน) คุณอาจจะเพิ่มสคริปต์หลามลงในแอปพลิเคชันเริ่มต้นของคุณ
Vanilla_Brys

4

ในขณะเดียวกันในขณะที่รายงานข้อผิดพลาดเกิดขึ้นฉันก็สังเกตเห็นปุ่มผสมอย่างรวดเร็วที่จะช่วยประหยัดอาการปวดหัวไม่กี่

เพียงดึงออกมาttyและกลับสู่ GUI ของคุณ:

CTRL+ ALT+ F1 (หรืออะไรก็ได้จากF1ถึงF6)

แล้วก็

CTRL+ ALT+ F8(คุณอาจจำเป็นต้องใช้F7แทนF8หนึ่งในนั้นจะนำคุณกลับสู่เดสก์ท็อปส่วนอีกอันจะให้หน้าจอสีดำและเคอร์เซอร์)

ดูเหมือนว่าการซิงค์จะถูกสร้างขึ้นใหม่เมื่อกลับสู่ GUI

สิ่งนี้เร็วกว่าการออกจากระบบและกลับเข้าสู่ระบบและโปรแกรมของคุณก็ยังเปิดอยู่

ปุ่มผสม เสร็จสิ้น ไม่ยุ่งยาก

แน่นอนว่านี่ไม่ใช่การแก้ไข มันเป็นเพียงการรวมกันของแป้นพิมพ์อย่างรวดเร็วเพื่อหลอกลวง HDMI เพื่อซิงค์และทำให้ได้เสียงกลับมา

มันทำงานได้ในตอนท้ายของฉัน
มีใครอีกคนที่อยากจะปิดทีวีสักครู่แล้วลองทำเอง?


2

ฉันสังเกตเห็นว่าถ้าคุณปิดเอาต์พุตไปที่ทีวีและเปิดอีกครั้งมันก็รีเซ็ตเสียง (Radeon HD6670) คำสั่ง aticonfig ตั้งค่าการแสดงผลให้เต็มหน้าจอในทีวีของฉัน คุณต้องค้นหาชื่อเอาต์พุตของคุณโดยการเรียกใช้ "xrandr -q" เปลี่ยน "DFP1" เป็นชื่อที่แสดงก่อน "CONNECTED" ในเอาต์พุตของคำสั่ง (คำนึงถึงขนาดตัวพิมพ์) ปัญหาที่เกิดขึ้นกับการตั้งค่าของฉันคือมีบางหน้าต่างกระโดดข้ามส่วนบนของหน้าจอเมื่อเรียกใช้ส่วนหนึ่งของสคริปต์เปิด / ปิด (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 จะถูกกู้คืน อย่าทำบ่อยเกินไป เมื่อคุณหมดหวังเท่านั้น

มีเธรดที่นี่และรายงานบั๊กที่หลบอยู่ที่นี่

แก้ไข> วิธีแก้ปัญหาอื่นคือไปที่การตั้งค่าระบบ> จอแสดงผล จากนั้นคลิกใช้โดยไม่เปลี่ยนแปลงอะไรเลย


1

ไปที่การตั้งค่าระบบ→จอแสดงผล

เปลี่ยนความละเอียดนำไปใช้แล้วเปลี่ยนกลับ

การตั้งค่าทั้งหมด→เสียง→เลือก HDMI


0

มีปัญหาเดียวกัน

แน่นอนว่าไดรเวอร์ของ ATI อาจเป็นสาเหตุของปัญหาอีกครั้ง Mine เป็น Radeon HD 6xxx

การออกจากระบบและกลับเข้ามาจะทำให้เสียงกลับมา แต่ฉันเดาว่าอาจมีทางออกที่ง่ายกว่านี้อีก


0

แก้ไข GD Gents

มีปัญหาเดียวกันมีเพียง http ของฉันกับ ATI 5770 เท่านั้นที่เชื่อมต่อกับเครื่องรับและจากทีวี แก้ไขปัญหานี้โดยการดาวน์โหลดและติดตั้งชุดไดร์เวอร์ BETA ล่าสุดจากเว็บไซต์ AMD

นี่คือลิงค์ATI Radeon

ขอบคุณมากสำหรับลิงก์ไปยังไดรเวอร์ Catalyst ™ 12.7 Beta ฉันค้นหา Google มาเป็นเวลานานและไม่มีใครได้รับคำตอบที่ง่ายสำหรับปัญหาที่น่ารำคาญนี้

แต่หลังจากติดตั้งไดรเวอร์ AMD Catalyst 12.7 Beta สำหรับWindows® 7 และ Windows Vista®

ทุกอย่างเป็นก้อน - dory!

จำเป็นมาก :)


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.