Наушники автоматически отключаются при подключении

После того, как я обновился до Ubuntu 16.04 LTS, у меня возникает следующая проблема: когда я подключаю наушники, они отключаются, и для решения этой проблемы мне нужно включить звук "динамика" в alsamixer, как видно на изображении.

Есть ли способ вернуть его к обычному поведению?

Заранее спасибо!

1 ответ

Отредактируйте этот файл:

/usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf

Прокомментируйте эти 2 строки, просто поставив; перед линиями

[Element Speaker]
; switch = off
; volume = off

Перезапустите pulseaudio:

killall pulseaudio
pulseaudio --start

У меня есть исправление, которое не решает основную проблему, но лечит симптомы, так сказать (автоматически устанавливает громкость канала "Динамик" на 100% при каждом подключении наушников). С моей стороны, канал "Динамик" на самом деле не должен быть включен, но его громкость должна быть установлена ​​на 100, чтобы получить нормальный звук. Команда, которую я использую для этого

amixer -c 0 set Speaker 100

Для тех, кто действительно должен включить звук канала, это будет:

amixer -c 0 set speaker 100 unmute

Прежде всего вам нужно протестировать эту команду, если она ничего не делает, значение '-c 0', скорее всего, неверно (-c для карты), которую вы можете запустить aplay -l чтобы получить список всех звуковых устройств, вам нужно найти соответствующий "номер карты" для вашей звуковой карты. (Обычно это 0, иногда 1, редко что-нибудь еще)

Как только вы подтвердите, что команда делает то, что должна, создайте скрипт в: /home/user/scripts/headphonefix.sh

#!/bin/bash
sleep 0.5 && amixer -c 0 set Speaker 100

Где "/ home / user" - это путь к вашей домашней папке. (Вы можете использовать любой путь, какой захотите, это всего лишь предложение).

Затем сделайте скрипт исполняемым с помощью

chmod +x /home/user/scripts/headphonefix.sh

Теперь мы на полпути.

Я сам не на Ubuntu (я использую Manjaro), но это "исправление" требует, чтобы служба acpid была запущена (я думаю, что она включена по умолчанию на Ubuntu, на arch это systemctl, позволяющая acpid запускать ее при каждой загрузке.)

Чтобы проверить, запущена ли служба acpid, запустите acpi_listen. Если вы получаете ошибку сокета, сервис не работает, если вы просто получаете пустой вывод, вы - золотой.

С включенным acpi_listen подключите ваши наушники, чтобы получить событие для него, для меня это было: jack/headphone HEADPHONE plug

Теперь с этой информацией мы можем создать этот файл (использовать sudo): /etc/acpi/events/ наушники

Сделайте так, чтобы содержимое выглядело примерно так:

event=jack/headphone HEADPHONE plug
action=/home/user/scripts/headphonefix.sh

Где /home/user/scripts/headphonefix.sh - это путь к сценарию, который мы создали ранее.

Теперь, чтобы подтвердить, что все работает, нам нужно перезапустить acpid, перезагрузив или выполнив эту команду:

Ubuntu: sudo service acpid restart

Arch / Manjaro: systemctl restart acpid

Затем отключите наушники, затем снова подключите их, и вот, теперь все должно работать.

Это не идеальное решение, поскольку оно просто заставляет alsa устанавливать громкость канала громкоговорителя на 100% каждый раз при подключении гарнитуры, а не решать основную проблему, объясняющую, почему это происходит под капотом. Но если вы просто хотите, чтобы дерьмо работало как обычно, это сработает.

(Примечание: вы также захотите запускать этот скрипт автоматически при запуске, если ваши наушники подключены при загрузке)

Другие вопросы по тегам