टीवी बंद होने के बाद एचडीएमआई ऑडियो बंद हो जाता है


10

12.04 अपडेट के बाद मेरा एचडीएमआई ऑडियो काम करना बंद कर देता है जब भी मैं अपना दूसरा मॉनिटर (प्लाज्मा टीवी) बंद करता हूं। ग्राफिक्स कार्ड एक Radeon 6800 है जिसमें DVI से 1 मॉनीटर, एचडीएमआई आउट से रिसीवर है जो टीवी को ऑडियो / वीडियो मिलता है। ऑडियो हमेशा मेरे रिसीवर ध्वनि के माध्यम से होता है।

जब तक यह टीवी और रिसीवर पर बूट करता है तब तक चीजें ठीक काम करती हैं। टीवी बंद करें और BART का एचडीएमआई ऑडियो चला जाएगा, और एचडीएमआई विकल्प ध्वनि मेनू से गायब हो जाएगा। मेरे पास 11.10 के साथ एक सामयिक एचडीएमआई मुद्दा था लेकिन टीवी को चालू / बंद करने से ध्वनि ठीक हो जाती थी। मैं चीजों को हार्डकोड कैसे कर सकता हूं ताकि यह हमेशा ऑडियो से बाहर एचडीएमआई का उपयोग करे? मुझे संदेह है कि टीवी एक संकेत भेज रहा है कि 12.04 अब सुन रहा है। टीवी को वापस चालू करने से यह हल नहीं होता है, और मेरा सुझाव है कि ध्वनि मेनू के माध्यम से इस नए "फीचर" को ओवरराइड करने की क्षमता हो।



एक बग रिपोर्ट है - लेकिन लॉन्चपैड पर कोई समाधान नहीं: बग्सलाउन्चैपडॉट.नेट
हीरो नायक

जवाबों:


9

मुझे यह समस्या हो रही है। मुझे एक अच्छा समाधान नहीं मिला, लेकिन मेरे पास यह काम है। ध्यान दें कि यह एक भयानक हैक है, लेकिन यह मेरे लिए काम करता है जब तक कि रूट समस्या तय नहीं हो जाती - उम्मीद है कि यह किसी और की मदद करेगा। हर 5 सेकंड में यह एचडीएमआई कनेक्शन त्रुटियों के लिए dmesg की जांच करता है और यदि यह एक पाता है तो यह कनेक्शन को पुनरारंभ करता है।

मैंने इस वॉचडॉग स्क्रिप्ट को बनाया - अपने आउटपुट के नाम के साथ "डीएफपी 1" को बदलें (इसे 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)

यदि किसी को त्रुटि (उत्प्रेरक ड्राइवरों के साथ) का पता लगाने का एक बेहतर तरीका पता है, तो कृपया मुझे बताएं। (ओपनसोर्स ड्राइवरों के साथ, मुझे लगता है कि अगर आप कुछ स्क्रिप्टिंग करना चाहते हैं, तो आप ड्रम एसपीआई घटनाओं पर कोड के रीसेट बिट को ट्रिगर कर सकते हैं)।

मैं इसे /etc/rc.local में जोड़कर शुरू करता हूं: ("xbmc" को उस उपयोगकर्ता नाम में बदलें) जिसे आप लॉग इन करते हैं)

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

स्क्रिप्ट काम करती है, लेकिन स्वचालन के साथ r.local नहीं। क्या आप यह दिखा सकते हैं कि r rllocal कैसा दिखना चाहिए?
ईसीआई

क्या स्क्रिप्ट को क्रोन में जोड़ना ठीक रहेगा और इसे हर मिनट या उसके बाद निष्पादित किया जाएगा?
ईसीआई

आप क्रोन में डाल सकते हैं। आपको पूरे while True:ब्लॉक को निकालना होगा और इसे बस के साथ बदलना होगा doTest()। इसमें कुछ छेड़छाड़ हो सकती है - सुनिश्चित करें कि यह लॉग इन यूजर्स क्रोन में है (रूट नहीं)।
वेनिला_क्रिस

मेरे rc.local में कुछ चीजें हैं। सबसे नीचे यह है: su xbmc -c 'python /home/andy/src/check_hdmi.py &'फिर एक नई लाइन पर exit 0। क्या आपने xbmcसही उपयोगकर्ता नाम के साथ प्रतिस्थापित किया है?
वैनिला_क्रिस

यदि आप एक सामान्य डेस्कटॉप वातावरण का उपयोग कर रहे हैं (मैं xbmc का उपयोग कर रहा हूं, तो मैं नहीं कर रहा हूं), आप शायद अपने स्टार्टअप एप्लिकेशन में अजगर स्क्रिप्ट जोड़ सकते हैं।
वेनिला_ब्रिज

4

इस बीच जबकि बग रिपोर्ट अच्छी हो रही है, मैंने एक त्वरित बटन संयोजन पर ध्यान दिया है जो कुछ सिरदर्द को बचाएगा।

बस ttyअपने GUI में वापस जाएं और वापस जाएं:

CTRL+ ALT+ F1 (या से कुछ भी F1करने के लिए F6)

फिर

CTRL+ ALT+ F8(आपको F7इसके बजाय उपयोग करने की आवश्यकता हो सकती है F8। उनमें से एक आपको अपने डेस्कटॉप पर लौटा देगा, दूसरा आपको एक काली स्क्रीन और कर्सर देगा)

ऐसा लगता है कि जीयूआई में लौटने पर सिंक फिर से स्थापित हो जाता है।

यह लॉग आउट और बैक इन करने की तुलना में बहुत तेज है, और आप प्रोग्राम आदि खुले रहते हैं।

बटन संयोजन। किया हुआ। परेशानी रहित।

यह निश्चित रूप से एक तय नहीं है। यह एचडीएमआई को फिर से सिंक करने के लिए ट्रिक करने के लिए एक त्वरित कीबोर्ड संयोजन है और इस तरह ऑडियो वापस मिलता है।

यह मेरे अंत पर काम करता है।
कोई भी व्यक्ति अपने टीवी को एक सेकंड के लिए बंद करना चाहता है और स्वयं इसे आज़माना चाहता है?


2

मैंने देखा कि यदि आप टीवी को आउटपुट बंद करते हैं और इसे वापस चालू करते हैं तो यह ध्वनि (Radeon HD6670) को भी रीसेट करता है। Aticonfig कमांड ने मेरे टीवी पर स्क्रीन को भरने के लिए डिस्प्ले सेट किया। आपको कमांड के आउटपुट में "कनेक्टेड" से पहले सूचीबद्ध किए गए "xrandr -q" परिवर्तन "DFP1" को चलाने के द्वारा अपना नाम पता करने की आवश्यकता है। मेरे सेटअप पर केवल यही समस्या है कि स्क्रिप्ट के चालू / बंद हिस्से को चलाते समय कुछ विंडो स्क्रीन के ऊपर से कूद जाती हैं (यदि आपके साथ ऐसा होता है तो उन्हें वापस नीचे खींचें)। हो सकता है कि कोई बेहतर समाधान / समाधान को कोड कर सकता है।

#! /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, उपलब्ध नहीं )

" उपलब्ध नहीं " " उपलब्ध होना चाहिए "

मुझे लगता है कि आप fglrx के साथ एक अति कार्ड का उपयोग कर रहे हैं। प्रयत्न

aticonfig --acpi-services=off

सुनिश्चित नहीं है कि यह सेटिंग लगातार है। यदि ऐसा है तो फिर से चालू करने की आज्ञा है।

aticonfig --acpi-services=on

मुझे संदेह है कि यह काम करेगा। संपादित करें> (यह नहीं था)

User53740 के रूप में पोस्ट किया गया। लॉगआउट / ऑडियो पुनर्स्थापित करता है। मॉनिटरिंग को ऑन या ऑफ करना एचडीएमआई ऑडियो को अक्षम करता है। यदि आप वास्तव में लॉगआउट नहीं करना चाहते हैं तो आप hdmi प्लग को फिर से एक प्लग निकाल सकते हैं और hdmi ऑडियो को पुनर्स्थापित किया जाएगा। यह भी अक्सर मत करो। जब आप हताश होते हैं तभी।

यहाँ एक थ्रेड है, यहाँ एक dodgey बग रिपोर्ट दी गई है

EDIT> सिस्टम सेटिंग्स> डिस्प्ले में एक और बदलाव है। फिर बिना कुछ बदले आवेदन पर क्लिक करें।


1

सिस्टम सेटिंग्स → डिस्प्ले पर जाएं

रिज़ॉल्यूशन बदलें, लागू करें, फिर इसे वापस बदलें।

सभी सेटिंग्स → ध्वनि → एचडीएमआई का चयन करें


0

एक ही समस्या होने।

बेशक, अति चालक शायद समस्याओं का कारण हैं, फिर से। मेरा है Radeon HD 6xxx।

लॉग आउट और वापस ध्वनि में वापस हो जाता है, लेकिन मुझे लगता है कि एक और सरल समाधान हो सकता है।


0

सॉलिड जीडी जेंट्स

एक ही समस्या थी केवल एटीआई 5770 के साथ मेरा http रिसीवर और फिर टीवी से जुड़ा था। AMD वेब साइट से नवीनतम BETA ड्राइवर पैक को डाउनलोड और इंस्टॉल करके इस समस्या का समाधान किया।

यहाँ लिंक ATI Radeon है

उत्प्रेरक ™ 12.7 बीटा ड्राइवर के लिंक के लिए बहुत-बहुत धन्यवाद, मैं लंबे समय से Google खोज रहा था और किसी को भी इस कष्टप्रद समस्या का आसान जवाब नहीं था।

लेकिन विंडोज 7 और विंडोज विस्टा® के लिए एएमडी कैटालिस्ट 12.7 बीटा ड्राइवर स्थापित करने के बाद

सब कुछ हंकी-डोरी है!

बहुत आभारी।:)


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.