Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Následující verze | Předchozí verze | ||
linux:lenovo_t430_micmute [2022/01/05 07:09] chytrex vytvořeno |
linux:lenovo_t430_micmute [2023/01/24 13:17] (aktuální) mirda [Vytvoření ACPI handleru] neshodný výsledek z acpi_listen |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Lenovo T430 - Micmute howto ====== | ====== Lenovo T430 - Micmute howto ====== | ||
- | <WRAP center round important 60%> | + | ===== Detekce systému ===== |
- | FIXME - Jen aby se to neztratilo - PŘEPSAT!! | + | |
- | src: https://gist.github.com/tybenz/5620255 | + | |
- | </WRAP> | + | |
+ | * spustíme v terminálu <code>acpi_listen</code> | ||
+ | * stiskneme tlačítko pro mute mikrofonu. | ||
+ | * zapíšeme si výsledek <code>button/micmute MICMUTE 00000080 00000000 K</code> | ||
+ | * spustíme v terminálu <code>amixer scontrols</code> | ||
+ | * zapíšeme si výsledek <code>Simple mixer control 'Capture',0</code> | ||
- | Copied from askubuntu's [Enabling mic mute button and light on Lenovo Thinkpad](http://askubuntu.com/questions/125367/enabling-mic-mute-button-and-light-on-lenovo-thinkpads) | + | ===== Vytvoření ACPI handleru ===== |
- | There are two possible "hardware" indicators (to show that mute is on or off): | + | sudo vim /etc/acpi/events/lenovo-mutemic |
+ | |||
+ | a do souboru vložíme: | ||
- | The Power button light (green) will blink to show when mute is on | + | event=button/micmute MICMUTE 00000080 00000000 K |
- | The Mic mute button light (orange) will be on or off to show mute status (just like in Windows) | + | action=/etc/acpi/lenovo-mutemic.sh |
- | Solution 2 requires a patched `thinkpad_acpi` kernel module, and is only recommended for advanced users who know what they are doing. This is because the patch is not included by the `thinkpad_acpi` developers by default, ([See this discussion for more details](http://comments.gmane.org/gmane.linux.drivers.platform.x86.devel/1962)). | + | Vytvoříme ovládací script: |
+ | sudo vim /etc/acpi/lenovo-mutemic.sh | ||
- | ###Common Steps | + | do souboru vložíme následující obsah: |
- | ---- | + | |
- | ###a. Determining the Mic-Mute hotkey code and Mic input device | + | <file bash> |
- | + | ||
- | - Open terminal with `Ctrl+Alt+T` | + | |
- | - Run `acpi_listen`, and press the mute key | + | |
- | - Note the result, which should be something like: `ibm/hotkey HKEY 00000080 0000101b` | + | |
- | - Then run `amixer scontrols`, you should see one of the following in the output: | + | |
- | + | ||
- | ``` | + | |
- | Simple mixer control 'Internal Mic',0 | + | |
- | ``` | + | |
- | + | ||
- | or | + | |
- | + | ||
- | ``` | + | |
- | Simple mixer control 'Capture',0 | + | |
- | ``` | + | |
- | + | ||
- | Depending on what you see, "Internal Mic" or "Capture" is your input device. | + | |
- | + | ||
- | ###b. Create the Mic-Mute ACPI event handler | + | |
- | + | ||
- | - Open terminal, type `gksudo gedit /etc/acpi/events/lenovo-mutemic` to open the editor. | + | |
- | - In the editor, paste in the following, where the first line should be the code shown in the previous section by `acpi_listen`: | + | |
- | + | ||
- | ``` | + | |
- | event=ibm/hotkey HKEY 00000080 0000101b | + | |
- | action=/etc/acpi/lenovo-mutemic.sh | + | |
- | ``` | + | |
- | + | ||
- | - Save and exit the editor. | + | |
- | + | ||
- | --- | + | |
- | ###Choosing either the Power Light or Mic Mute indicators | + | |
- | --- | + | |
- | + | ||
- | ###c-1. Mic-Mute script with Power Button indicator | + | |
- | + | ||
- | - Do this if you want an easy solution and do not want to use the patched kernel module (see C-2). | + | |
- | - Open terminal, type `gksudo gedit /etc/acpi/lenovo-mutemic.sh` | + | |
- | - In the editor, paste: | + | |
- | + | ||
- | ``` | + | |
#!/bin/bash | #!/bin/bash | ||
- | INPUT_DEVICE="'Internal Mic'" | + | INPUT_DEVICE="'Capture'" |
- | YOUR_USERNAME="place_your_username_here" | + | amixer sset $INPUT_DEVICE,0 toggle |
- | if amixer sget $INPUT_DEVICE,0 | grep '\[on\]' ; then | + | </file> |
- | amixer sset $INPUT_DEVICE,0 toggle | + | |
- | echo "0 blink" > /proc/acpi/ibm/led | + | |
- | su $YOUR_USERNAME -c 'DISPLAY=":0.0" notify-send -t 50 \ | + | |
- | -i microphone-sensitivity-muted-symbolic "Mic MUTED"' | + | |
- | else | + | |
- | amixer sset $INPUT_DEVICE,0 toggle | + | |
- | su $YOUR_USERNAME -c 'DISPLAY=":0.0" notify-send -t 50 \ | + | |
- | -i microphone-sensitivity-high-symbolic "Mic ON"' | + | |
- | echo "0 on" > /proc/acpi/ibm/led | + | |
- | fi | + | |
- | ``` | + | |
- | + | ||
- | - Replace value of INPUT_DEVICE variable with `Capture` if that is your input device name (leave all the ticks intact). | + | |
- | + | ||
- | - Replace value of YOUR_USERNAME variable with the account name of the user you want to send notifications to | + | |
- | - Save and exit the editor. | + | |
- | - Now run the following (from the terminal): | + | |
- | + | ||
- | ``` | + | |
- | sudo chmod +x /etc/acpi/lenovo-mutemic.sh | + | |
- | sudo service acpid restart | + | |
- | ``` | + | |
- | + | ||
- | - Jump to the Testing section (d) to confirm that it works. | + | |
- | + | ||
- | ###c-2. Mic-mute with official Mic-mute Indicator Light | + | |
- | + | ||
- | #####Setting up the script | + | |
- | + | ||
- | - *Please do not use this method if you are not familiar with the terminal/shell.* | + | |
- | - This will require compiling a patched `thinkpad_acpi` module and has been verified to work with Ubuntu Precise 12.04 and Quantal 12.10, kernels 3.2.0-23 and 3.2.0-24 and 3.5.0-21. | + | |
- | - Let's create the script first: `/etc/acpi/lenovo-mutemic.sh` should be as in section c-1, with the following additions: | + | |
- | - Insert this line after the header (#!/bin/bash): | + | |
- | + | ||
- | ``` | + | |
- | MICMUTE=/sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness | + | |
- | ``` | + | |
- | + | ||
- | - After the first echo... line, insert: | + | |
- | + | ||
- | ``` | + | |
- | echo 1 > $MICMUTE | + | |
- | ``` | + | |
- | + | ||
- | - And after the second echo... line, insert: | + | |
- | + | ||
- | ``` | + | |
- | echo 0 > $MICMUTE | + | |
- | ``` | + | |
- | + | ||
- | - You can find an example of what the full script should look like in this paste | + | |
- | + | ||
- | - Then: | + | |
- | + | ||
- | ``` | + | |
- | sudo chmod +x /etc/acpi/lenovo-mutemic.sh | + | |
- | sudo service acpid restart | + | |
- | ``` | + | |
- | + | ||
- | - Confirm that pressing the mute button results in a blinking power light; pressing again gives a steady power light. | + | |
- | + | ||
- | #####Building, testing and installing the kernel module | + | |
- | + | ||
- | - Install (or ensure) you have the headers and built tools for your currently running kernel with: | + | |
- | + | ||
- | ```bash | + | |
- | sudo apt-get install linux-headers-$(uname -r) build-essential | + | |
- | ``` | + | |
- | + | ||
- | - Make a temporary directory and change to it: | + | |
- | + | ||
- | ```bash | + | |
- | mkdir ~/tpacpi && cd ~/tpacpi | + | |
- | ``` | + | |
- | + | ||
- | - Download the source file `thinkpad_acpi.c` from the Ubuntu Kernel git repository: | + | |
- | + | ||
- | ```bash | + | |
- | 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" | + | |
- | ``` | + | |
- | + | ||
- | - Patch it with (copy and paste the full line): | + | |
- | + | ||
- | ```bash | + | |
- | 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 | + | |
- | ``` | + | |
- | + | ||
- | In the same folder where thinkpad_acpi.c has been downloaded, you will need a "Makefile". You can download it directly from this Pastebin, using: | + | |
- | + | ||
- | ```bash | + | |
- | wget -OMakefile http://pastebin.com/raw.php?i=ybpnxeUT | + | |
- | ``` | + | |
- | + | ||
- | - OR paste the below into a file called Makefile: | + | |
- | + | ||
- | ```bash | + | |
- | obj-m += thinkpad_acpi.o | + | |
- | + | ||
- | all: | + | |
- | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules | + | |
- | + | ||
- | clean: | + | |
- | make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean | + | |
- | ``` | + | |
- | + | ||
- | - Now type make to create the module; you will see a thinkpad_acpi.ko file in the folder when done. | + | |
- | + | ||
- | - Test the patched module after loading it with: | + | |
- | + | ||
- | ```bash | + | |
- | sudo rmmod thinkpad_acpi && sudo insmod thinkpad_acpi.ko | + | |
- | ``` | + | |
- | + | ||
- | - Now confirm that pressing the mic button will turn the orange mic light on/off AND the power light blinking/steady. | + | |
- | - If confirmed, do the following to replace your current `thinkpad_acpi` module: | + | Pokud se výstup amixer příkazu lišil patřičně pozměníme proměnnou INPUT_DEVICE |
- | ```bash | + | Následně nastavíme příznak spouštění a restartujeme acpid |
- | TPDIR=/lib/modules/$(uname -r)/kernel/drivers/platform/x86 | + | |
- | sudo mv $TPDIR/thinkpad_acpi.ko $TPDIR/thinkpad_acpi.ko.stock | + | |
- | sudo mv /where/you/built/it/tpacpi_micmute/thinkpad_acpi.ko $TPDIR/thinkpad_acpi.ko | + | |
- | ``` | + | |
- | - Comment out or delete the power led lines in lenovo-micmute.sh | + | sudo chmod +x /etc/acpi/lenovo-mutemic.sh |
+ | sudo invoke-rc.d acpid restart | ||
+ | |||
+ | ===== Nastavení LED na tlačítku ===== | ||
- | ###d. Testing | + | * v terminálu otevřít <code>LANG=C alsamixer</code> |
+ | * **F6** - zvolit **HDA INTEL PCH** | ||
+ | * najít item **Mic Mute-LED mode** a nastavit na **Follow capture** | ||
+ | * vyskočit z alsamixeru a uložit alsa konfiguraci <code>sudo alsactl store</code> | ||
- | - Apart from your choice of indicator, you can also confirm mute via the following: | ||
- |  | + | Zdroj: https://gist.github.com/tybenz/5620255 - modifikováno pro jednodušší, více systémové řešení. |
- | - Click on the volume icon on the top right, and sound settings at the bottom: | + | Testováno na Devuan Chimaera, kernel 5.10.0-10 |
- | - Switch to the "Input" tab. | + | |
- | - Now have fun pressing the Mic Mute button, you should see it reflected in: | + | |
- | 1. The Mute checkbox in the window | ||
- | 2. Notification bubbles (won't appear instantly if you press the Mic Mute more than once every few seconds!) | ||
- | 3. Your chosen indicator: the blinking power button light or the built-in Mic Mute light. |