लेनोवो थिंकपैड पर माइक म्यूट बटन और लाइट को सक्षम करना


26

मेरे लेनोवो थिंकपैड T420 पर एक माइक म्यूट बटन है, लेकिन यह काम नहीं करता है।

इसलिए मैंने xevप्रेस इवेंट पर नजर रखने के लिए कमांड की कोशिश की , और उस कुंजी को कैप्चर नहीं किया गया।

वहाँ वैसे भी इसे ठीक करने के लिए है, जैसे कच्चे कुंजी कोड जोड़ें?

ओएस और लैपटॉप

Ubuntu 12.04 , यह भी उम्मीद है कि यह आर्क लिनक्स पर काम करता है, लेकिन इससे ज्यादा फर्क नहीं पड़ता; -पी

थिंकपैड मॉड्यूल: X220 4290LY9

आर्क लिनक्स के लिए कर्नेल पैच

यहाँ डाउनलोड करें

आखिरकार

यह थोड़ा मुश्किल है, लेकिन कर्नेल पैच और एसपीआईडी ​​स्क्रिप्ट के साथ, यह अब काम करता है।

बाकी मुझे आउटपुट म्यूट के लिए एक अधिसूचित डेमॉन की तरह है, लेकिन यह अब ज्यादा मायने नहीं रखता है।


कौन सा लेनोवो मॉडल?
ईश

@izx थिंकपैड X220 4290LY9
डेज़ी

इसके बजाय xev, acpi-listenमॉनिटर करने और प्रेस करने के लिए उपयोग करें, आपको कुछ ऐसा मिलना चाहिए ibm/hotkey HKEY 00000080 0000101b। कृपया उस कोड को यहाँ पोस्ट करें।
ish

@izx, कोई किस्मत, लेकिन मैं अन्य बटन, जैसे वॉल्यूम अप / वॉल्यूम नीचे देख सकते हैं, लगता है कि सहूलियत
डेज़ी

आपके पास म्यूट बटन के अंदर एक लाइट है? इसके अलावा बटन को कुछ बार दबाएं औरdmesg|tail
ish

जवाबों:


34

इस समाधान को म्यूट बटन के साथ सभी थिंकपैड के लिए काम करना चाहिए जिसमें एक अंतर्निहित प्रकाश भी है। यह अन्य थिंकपैड के लिए भी काम कर सकता है।

अधिसूचना बुलबुले के अलावा:

यहाँ छवि विवरण दर्ज करेंयहाँ छवि विवरण दर्ज करें

दो संभावित "हार्डवेयर" संकेतक हैं (यह दिखाने के लिए कि म्यूट चालू या बंद है):

  1. म्यूट होने पर पावर बटन लाइट (हरा) झपकी लेगा
  2. माइक म्यूट बटन लाइट (नारंगी) म्यूट स्टेटस (विंडोज की तरह) दिखाने के लिए चालू या बंद रहेगा

    समाधान 2 के लिए एक पैच thinkpad_acpiकर्नेल मॉड्यूल की आवश्यकता होती है , और केवल उन्नत उपयोगकर्ताओं के लिए अनुशंसित है जो जानते हैं कि वे क्या कर रहे हैं। ऐसा इसलिए है क्योंकि पैच को डिफ़ॉल्ट रूप से थिंकपैड_एसीपी डेवलपर्स द्वारा शामिल नहीं किया गया है, ( अधिक विवरण के लिए इस चर्चा को देखें )।

सामान्य चरण


ए। माइक-म्यूट हॉटकी कोड और माइक इनपुट डिवाइस का निर्धारण

  • के साथ खुला टर्मिनल Ctrl+Alt+T
  • चलाएँ acpi_listen, और म्यूट कुंजी दबाएँ
  • परिणाम पर ध्यान दें, जो कुछ इस प्रकार होना चाहिए: ibm/hotkey HKEY 00000080 0000101b

  • फिर चलाएं amixer scontrols, आपको आउटपुट में निम्न में से एक देखना चाहिए:

सरल मिक्सर नियंत्रण 'आंतरिक माइक', 0

या

सरल मिक्सर नियंत्रण 'कैप्चर', 0

आपके द्वारा देखे जाने के आधार पर, "आंतरिक माइक" या "कैप्चर" आपका इनपुट डिवाइस है।

ख। Mic-Mute ACPI ईवेंट हैंडलर बनाएँ

  • टर्मिनल gksudo gedit /etc/acpi/events/lenovo-mutemicखोलें, संपादक को खोलने के लिए टाइप करें।
  • संपादक में, निम्नलिखित में पेस्ट करें, जहां पहली पंक्ति में पिछले भाग में दिखाया गया कोड होना चाहिए acpi_listen:
    घटना = ibm / हॉटकी HKEY 00000080 0000101b
    कार्रवाई = / etc / ACPI / lenovo-mutemic.sh
    
  • सहेजें और संपादक से बाहर निकलें।

पावर लाइट या माइक म्यूट इंडिकेटर्स में से किसी एक को चुनना


सी -1। पावर बटन इंडिकेटर के साथ माइक-म्यूट स्क्रिप्ट

  • ऐसा करें यदि आप एक आसान समाधान चाहते हैं और पैच किए गए कर्नेल मॉड्यूल का उपयोग नहीं करना चाहते हैं (सी -2 देखें)।
  • टर्मिनल खोलें, टाइप करें gksudo gedit /etc/acpi/lenovo-mutemic.sh
  • संपादक में, पेस्ट करें:

    #! / Bin / bash
    INPUT_DEVICE = "'आंतरिक माइक'"
    YOUR_USERNAME = "place_your_username_here"
    अगर amixer sget $ INPUT_DEVICE, 0 | grep '\ [on \]'; फिर
        amixer sset $ INPUT_DEVICE, 0 टॉगल करें
        इको "0 ब्लिंक"> / proc / acpi / ibm / led
        सु $ your_USERNAME -c 'DISPLAY = ": 0.0" सूचित-भेजें -t 50 \
                -आई माइक्रोफोन-संवेदनशीलता-उत्परिवर्तित-प्रतीकात्मक "माइक म्यूट"
    अन्य
        amixer sset $ INPUT_DEVICE, 0 टॉगल करें                       
        सु $ your_USERNAME -c 'DISPLAY = ": 0.0" सूचित-भेजें -t 50 \
                -आई माइक्रोफोन-संवेदनशीलता-उच्च-प्रतीकात्मक "माइक ऑन" '
        गूंज "0 पर"> / proc / acpi / ibm / एलईडी 
    फाई
    
  • INPUT_DEVICE वैरिएबल के मान को बदलें Captureयदि वह आपके इनपुट डिवाइस का नाम है (सभी टिकों को छोड़ दें)।

  • जिस उपयोगकर्ता को आप सूचनाएं भेजना चाहते हैं, उसके खाते के नाम के साथ Your_USERNAME चर का मूल्य बदलें
  • सहेजें और संपादक से बाहर निकलें।
  • अब निम्नलिखित (टर्मिनल से) चलाएं:
    सुडो चामोद + x /etc/acpi/lenovo-mutemic.sh
    sudo सेवा acpid पुनरारंभ
    
  • पुष्टि करने के लिए परीक्षण खंड (डी) पर जाएं कि यह काम करता है।

सी -2। आधिकारिक-मूक संकेतक लाइट के साथ माइक-म्यूट

स्क्रिप्ट सेट करना

  • कृपया इस पद्धति का उपयोग न करें यदि आप टर्मिनल / शेल से परिचित नहीं हैं।
  • इसके लिए एक पैच किए गए thinkpad_acpiमॉड्यूल को संकलित करने की आवश्यकता होगी और इसे Ubuntu Precise 12.04 और Quantal 12.10, गुठली 3.2.0-23 और 3.2.0-24 और 3.5.0-21 के साथ काम करने के लिए सत्यापित किया गया है।
  • आइए सबसे पहले स्क्रिप्ट बनाएं: /etc/acpi/lenovo-mutemic.shसेक्शन सी -1 में जैसा होना चाहिए, निम्नलिखित परिवर्धन के साथ:

  • हेडर के बाद यह लाइन डालें ( #!/bin/bash):

    MICMUTE=/sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness
    
  • पहली echo...पंक्ति के बाद , सम्मिलित करें:

    echo 1 > $MICMUTE
    
  • और दूसरी echo...पंक्ति के बाद , डालें:

    echo 0 > $MICMUTE
    
  • आप एक उदाहरण पा सकते हैं कि इस पेस्ट में पूरी स्क्रिप्ट कैसी दिखनी चाहिए

  • फिर:

    sudo chmod +x /etc/acpi/lenovo-mutemic.sh
    sudo service acpid restart
    
  • इस बात की पुष्टि करें कि म्यूट बटन दबाने से पलक झपकती है; फिर से दबाने से एक स्थिर शक्ति प्रकाश देता है।

कर्नेल मॉड्यूल का निर्माण, परीक्षण और स्थापना

  • स्थापित करें (या सुनिश्चित करें) आपके पास वर्तमान में चलने वाले कर्नेल के लिए हेडर और निर्मित उपकरण हैं:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  • एक अस्थायी निर्देशिका बनाएं और इसे बदलें:

    mkdir ~/tpacpi && cd ~/tpacpi
    
  • thinkpad_acpi.cUbuntu कर्नेल गिट रिपॉजिटरी से स्रोत फ़ाइल डाउनलोड करें :

    wget -Othinkpad_acpi.c "http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-$(lsb_release -sc).git;\
    a=blob_plain;f=drivers/platform/x86/thinkpad_acpi.c;hb=HEAD" 
    
  • इसके साथ पैच करें (कॉपी करें और पूरी लाइन पेस्ट करें):

    sed -i -e 's/"tpacpi::thinkvantage",/"tpacpi::thinkvantage",\n\t"tpacpi::unknown_led4",\n\t"tpacpi::micmute",/g' -e 's/0x1081U/0x5081U/g' -e 's/0x1fffU/0x5fffU/g' thinkpad_acpi.c
    
  • उसी फ़ोल्डर में जहां thinkpad_acpi.cडाउनलोड किया गया है, आपको "मेकफाइल" की आवश्यकता होगी। आप इसे इस पास्टबीन से सीधे डाउनलोड कर सकते हैं ,

    wget -OMakefile http://pastebin.com/raw.php?i=ybpnxeUT
    

    या नीचे एक फ़ाइल में पेस्ट करें Makefile:

    obj-m + = thinkpad_acpi.o
    सब: मेक -C / lib / मॉड्यूल / $ (शेल uname -r) / बिल्ड M = $ (PWD) मॉड्यूल
    स्वच्छ: मेक -C / lib / मॉड्यूल / $ (शेल uname -r) / बिल्ड M = $ (PWD) साफ
  • अब makeमॉड्यूल बनाने के लिए टाइप करें; आप thinkpad_acpi.koजब किया फ़ोल्डर में एक फ़ाइल देखेंगे ।

  • इसके साथ लोड करने के बाद पैच मॉड्यूल का परीक्षण करें:

    sudo rmmod thinkpad_acpi && sudo insmod thinkpad_acpi.ko
    
  • अब पुष्टि करें कि माइक बटन दबाने से नारंगी माइक लाइट चालू / बंद हो जाएगा और पावर लाइट ब्लिंकिंग / स्थिर हो जाएगी।

  • यदि पुष्टि की जाती है, तो अपने वर्तमान thinkpad_acpiमॉड्यूल को बदलने के लिए निम्नलिखित करें :

    TPDIR = / lib / मॉड्यूल / $ (uname -r) / कर्नेल / ड्राइवर / प्लेटफ़ॉर्म / x86
    sudo mv $ TPDIR / थिंकपैड_acpi.ko $ TPDIR / थिंकपैड_acpi.ko.stock
    sudo mv /where/you/built/it/tpacpi_micmute/thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko
    
  • टिप्पणी करें या बिजली के नेतृत्व वाली लाइनों को हटा दें lenovo-micmute.sh


घ। परिक्षण

  • संकेतक की अपनी पसंद के अलावा, आप निम्नलिखित के माध्यम से म्यूट की पुष्टि कर सकते हैं:

माइक इनपुट

  • शीर्ष दाईं ओर वॉल्यूम आइकन पर क्लिक करें, और नीचे ध्वनि सेटिंग:
  • "इनपुट" टैब पर स्विच करें।
  • अब माइक म्यूट बटन को दबाकर मज़े करें, आपको इसे परिलक्षित होना चाहिए:

    1. विंडो में म्यूट चेकबॉक्स
    2. अधिसूचना बुलबुले (यदि आप हर कुछ सेकंड में एक से अधिक बार माइक म्यूट दबाते हैं तो तुरंत दिखाई नहीं देगा!)
    3. आपका चुना हुआ संकेतक: ब्लिंकिंग पावर बटन लाइट या बिल्ट-इन माइक म्यूट लाइट।

सूचक के रूप में एक निमिष शक्ति प्रकाश जोड़ा - एक कस्टम कर्नेल के बिना वास्तविक mic प्रकाश का उपयोग करना असंभव है।
ish

1
@ भारत: मैंने संशोधित स्रोत को डाउनलोड करने के बजाय एक इनलाइन पैच जोड़ा है। कृपया इसके लिए उत्तर पृष्ठ Patch it withखोजें और आपको sedमाइक म्यूट एलईडी को सक्रिय करने के लिए आवश्यक रेखा मिल जाएगी ।
ish

2
दुर्भाग्य से, मैं thinkpad_acpi.cऔर कोई संकलन नहीं कर सकता । Makeआउटपुट यहाँ है । किसी को, कृपया, मुझे इस मुद्दे को हल करने में मदद कर सकता है?
एंड्री

1
13.10 (Saucy) को एक अलग थिंकपैड_acpi.c की आवश्यकता है। पैच मूल उत्तर की तरह ही रहता है। इसने मेरे लिए 3.11.0-15-जेनेरिक कर्नेल (और इसी हेडर) पर काम किया।
डैनियल

1
16.10 में, ऐसा लगता है कि जब आप पहली विधि का उपयोग करते हैं तो माइक म्यूट लाइट स्वयं चालू हो जाती है और म्यूट बटन दबाएं, इसलिए अब ब्लिंकिंग पावर लाइट आवश्यक नहीं है।
विस्फोट

0

मैं पहली बार Ubuntu डेस्कटॉप पर सीधे काम करने के लिए इसे प्राप्त नहीं कर सका।

यह केवल उद्धरण जोड़ने और अल्पविराम हटाने (और मेरा उपयोगकर्ता नाम जोड़ने) के साथ तय किया गया था:

#!/bin/bash
MICMUTE=/sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness

ID='"Internal Mic"'
USERNAME="" #put your username here
if amixer sget "$ID"ntenter code herernal Mic" 0 | grep '\[on\]' ; then
    amixer sset "$ID" 0 toggle
    #echo "0 blink" > /proc/acpi/ibm/led #related to blinking power
    echo 1 > $MICMUTE
    su $USERNAME -c 'DISPLAY=":0.0" notify-send -t 50 \
            -i microphone-sensitivity-muted-symbolic "Mic MUTED"'
    echo "MUTE ON"
else
    amixer sset "$ID" 0 toggle                       
    su $USERNAME -c 'DISPLAY=":0.0" notify-send -t 50 \
            -i microphone-sensitivity-high-symbolic "Mic ON"'
    #echo "0 on" > /proc/acpi/ibm/led 
    echo 0 > $MICMUTE
    echo "MUTE OFF"
fi

और फिर थिंकपैड_एसीपी को संकलित करने में अपने कदमों का पालन किया।

NVS 4200M, Ubuntu 12.10 के साथ थिंकपैड T520 पर सभी। अभी तक रिबूट नहीं किया गया है, लेकिन मैंने आपके द्वारा बताए गए परीक्षण चरण के साथ परीक्षण किया और यह म्यूट एलईडी को चालू और बंद करने के साथ काम करता है और वास्तव में इसे (अधिसूचना के साथ) म्यूट कर रहा है। बंदूक को थोड़ा-थोड़ा कूदना ठीक काम लगता है। धन्यवाद।

अच्छी तरह से रिबूट किया गया, स्क्रिप्ट ही ठीक म्यूटिंग और अनम्यूटिंग का काम करती है, लेकिन मैंने पैच किए गए थिंकपैड_एसीपी को स्थापित नहीं किया ... उफ़

ठीक है, इस बार इसे ठीक से स्थापित करने के बाद फिर से रिबूट किया गया और एलईडी लाइट्स भी। संभवत: स्टार्ट-अप स्क्रिप्ट होनी चाहिए, यह जांचने के लिए कि माइक म्यूट है या नहीं और लाइट को ऑन / ऑफ कर दें, क्योंकि मौजूदा सेटअप केवल लाइट को चालू / बंद करेगा जब बटन को धक्का दिया जाएगा।


यह दिखाने के लिए कि अगर बटन को पहली बार धकेला गया है तो मैं स्टार्ट-अप में नहीं हूं या नहीं, यह दिखाने के लिए लाइट पाने के लिए, मैं अभी बचा हूं:

#!/bin/bash
MICMUTE=/sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness
if amixer sget "Internal Mic" 0 | grep '\[on\]' ; then
    echo 0 > $MICMUTE
elif amixer sget "Internal Mic" 0 | grep '\[off\]' ; then
    echo 1 > $MICMUTE
else
    echo "No Mic Detected";
fi

इसे निष्पादित करने की अनुमति दी

sudo chmod +x /etc/init.d/lenovo-mic-check

Lenovo-mic-check to /etc/init.d/ और फिर भागा:

sudo update-rc.d lenovo-mic-check defauts 98 02

इसके अलावा /etc/pm/sleep.d/ पर कॉपी करना न भूलें

sudo cp /etc/init.d/lenovo-mic-check /etc/pm/sleep.d/lenovo-mic-check

अब प्रकाश चालू है यदि मैं कंप्यूटर को रिबूट करता हूं, तो नोट: दूसरा यदि केवल एक और हो सकता है।


@andrey यह एक गूंगा विचित्रता हो सकता है, लेकिन क्या आपने थिंकपैड_एसीपी सी की एक साफ प्रतिलिपि डाउनलोड करने, पैच करने और संकलित करने की कोशिश की है?
JQuantum
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.