4

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

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

Я испытываю это только под Ubuntu 14.04 (под моим разделом Windows, он отлично работает) на ноутбуке XMG A305. Кажется, что эта проблема связана с драйверами, используемыми с моей звуковой картой (карта: HDA Intel PCH, чип: VIA VT1802) или взаимодействием между различными драйверами.

Кроме того, было несколько других людей, испытывающих это на других машинах:Bugreport для Clevo Laptop

4 ответа4

5

После долгого поиска я нашел решение, которое хорошо работает для меня и может помочь вам:

Код в основном взят отсюда.

Получить код

Существует сценарий Python, который может активировать разъем для наушников. Этот код взят из ektor5 на GitHub. Вам нужно скачать скрипт, поместить его где-нибудь, где ваша система найдет его, и сделать его исполняемым. Вы можете сделать все это с помощью этой строки:

sudo wget https://raw.githubusercontent.com/ektor5/init-headphone/master/init-headphone -O /usr/local/sbin/init-headphone && sudo chmod +x /usr/local/sbin/init-headphone

Установить зависимости

init-headphone нужны зависимости, которые можно установить с помощью:

sudo apt-get install python-smbus

Добавить флаг grub

Кроме того, ваше ядро должно быть запущено с включенным дополнительным флагом. Вы можете сделать это, отредактировав файл ''/etc/default/grub ''. Измени эту строку

GRUB_CMDLINE_LINUX=""

к этому

GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax"

После этого запуска

sudo update-grub

Загрузка модулей при запуске

Кроме того, скрипт должен загружать модули. А именно «i2c_dev» и «i2c_i801». Они могут быть загружены во время выполнения с

modprobe i2c_dev
modprobe i2c_i801

Теперь вы можете проверить, работает ли он, запустив «inito-наушники».

Чтобы автоматически загрузить модули при запуске, добавьте следующие строки в «/etc/modules»:

i2c_dev
i2c_i801

Создать скрипт запуска

И наконец, мы хотим, чтобы скрипт запускался автоматически, когда наш компьютер перезагружается или возвращается из приостановленного состояния. Для этого поместите следующий скрипт в ´ /etc /pm /sleep.d /´.

sudo gedit /etc/pm/sleep.d/init-headphone

Добавьте следующие строки

#!/bin/sh

if [ ! -x /usr/local/sbin/init-headphone ]; then
    exit 0
fi

case $1 in
     resume|thaw)
        /usr/local/sbin/init-headphone
       ;;
esac

И не забудьте сделать файл исполняемым

sudo chmod +x /etc/pm/sleep.d/init-headphone

Я надеюсь, что это поможет, дайте мне знать, если у вас есть какие-либо проблемы.

cbandera

0

Вы можете попробовать проверить панель управления громкостью, чтобы убедиться, что она просто сбрасывается на стандартные динамики. Если это так, вы можете либо запустить его заново, либо вручную подключить его к наушникам.

0

Я не уверен, какую версию Linux вы используете, но попробуйте применить соответствующий эквивалент sudo apt-get install gstreamer с последующим запуском gstreamer-properties через командную строку и посмотрите, есть ли какие-либо необычные настройки между импульсным аудио и alsa для ваших наушников. и т.п.

(Я использовал это в старых системах на основе Ubuntu, чтобы настройки наушников работали для Skype и т.д.)

0

Добавление к отличному ответу @cbandera: Для систем, использующих systemd (например, Ubuntu 15.04 или новее), сценарий запуска должен быть /lib/systemd/system-sleep/init-headphone и выглядеть следующим образом:

#!/bin/sh

[ -x /usr/local/sbin/init-headphone ] || exit 0

[ "$1" = "post" ] && /usr/local/sbin/init-headphone

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .