- Как переключаться между наушниками и динамиками, не отключая наушники
- 6 ответов
- Подключение динамиков и наушников и включение программного обеспечения на лету
- 1. Мы сообщаем pulseaudio, что наушники всегда подключены.
- 2. По умолчанию громкость линейного выхода контролируется только мастером, а не самим ползунком линейного выхода.
- 3. Нам нужно полностью отключить Line Out, когда мы используем наушники.
- 4. Как и Pulseaudio, Alsa сама отключает динамики при подключении наушников.
- 5. Перезапустите Pulseaudio
- Выполнение командной строки
- Документация для hdajackretask
- Быстрый старт
- Quickend
- Это сработало?
- Опции
Как переключаться между наушниками и динамиками, не отключая наушники
Когда я подключаю наушники, устройство вывода звука переключается на наушники из моих динамиков.
Вместо того, чтобы постоянно подключать / отключать наушники, что в конечном итоге приведет к износу моего шнура / гнезда, я хотел бы просто использовать программный переключатель.
Когда я открываю «Настройки звука» и переключаюсь с «Наушники -> Встроенный звук» на «Линейный выход -> Встроенный звук», из динамика или наушников не выходит звук.
Я открыл alsamixer, чтобы посмотреть, что происходит, когда я подключаю / отключаю наушники.
Когда наушники подключены, я вручную изменил все настройки, чтобы они соответствовали настройкам, когда наушники не подключены, и через динамик не было слышно ни звука.
Как примечание, изменение устройства вывода звука через «Настройки звука» вызывает те же изменения в alsamixer.
6 ответов
Чтобы можно было переключаться между динамиками и наушниками, выполните следующие действия:
- Бежать alsamixer ,
- При необходимости выберите свою звуковую карту с помощью F6 .
- Перейдите к «Auto-Mute» с помощью стрелки вправо → .
- Отключите его с помощью стрелки вниз ↓ .
- Нажмите Esc для выхода.
Или вы можете сделать все эти шаги с помощью одной команды:
Теперь вы можете переключаться между динамиками и наушниками с помощью регулятора громкости PulseAudio.
После применения этих инструкций вы можете упростить свою жизнь с помощью индикатора переключателя звука, чтобы быстро переключаться между наушниками и динамиками.
Подключение динамиков и наушников и включение программного обеспечения на лету
По замыслу Pulseaudio автоматически отключает линейный выход при подключении наушников и использует вместо этого слайдер для наушников. Вы можете наблюдать это поведение в alsamixer. Мы хотим, чтобы слайдеры для наушников и линейного выхода работали отдельно и одновременно. Это очень полезно, если вы хотите переназначить гнезда Realtek, чтобы иметь, скажем, Rear Green для наушников и Blue для динамиков (с помощью hdajackretask от alsa-tools).
Чтобы достичь этого, вы должны непосредственно отредактировать конфигурацию пульсометра.
1. Мы сообщаем pulseaudio, что наушники всегда подключены.
/usr/share/pulseaudio/alsa-mixer/paths/analog-output-lineout.conf
[Jack Headphone] state.plugged = no state.unplugged = unknown
Если вы используете гнезда на передней панели корпуса компьютера, смените [Jack Front Headphone] вместо.
2. По умолчанию громкость линейного выхода контролируется только мастером, а не самим ползунком линейного выхода.
Мы хотим объединить Line Out с Мастером. Добавьте этот фрагмент в конец файла:
[Element Line Out] switch = mute volume = merge
3. Нам нужно полностью отключить Line Out, когда мы используем наушники.
/usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf
Добавьте этот фрагмент в конец файла:
[Element Line Out] switch = off volume = off
В некоторых системах вам также может потребоваться отключить Front, добавив этот фрагмент:
[Element Front] switch = off volume = off
4. Как и Pulseaudio, Alsa сама отключает динамики при подключении наушников.
Откройте alsamixer: alsamixer -c0 или же alsamixer -c1
Используйте ← / → для автоматического отключения звука. Отключить режим автоматического отключения звука с помощью ↓ . Закройте alsamixer с помощью Esc .
Сохраните ваши изменения с: alsactl store
5. Перезапустите Pulseaudio
$ pulseaudio -k $ pulseaudio --start
Теперь у вас есть два отдельных порта на одном приемнике в pulseaudio. Они приглушают друг друга, поэтому вы можете переключиться на наушники, и это отключит линейный выход, и наоборот. Для переключения между портами вы можете использовать звуковой микшер Gnome или Plasma или установить соответствующее расширение рабочего стола.
hdajackretask — это инструмент для переназначения функции, которую ваши гнезда используют для другого входа, выхода или отключения — например, превратить ваш микрофонный разъем в дополнительные наушники или почему бы не сделать их одновременно линейными выходами и подключить их к ресиверу объемного звучания?
sudo apt-get update sudo apt-get install alsa-tools-gui
Бежать hdajackretask Затем, чтобы переопределить одно из ваших гнезд:
- Выберите кодек
- Установите флажок «Переопределить» для этого вывода и выберите новую нужную функцию.
- Нажмите «Применить сейчас»
Примечание. Если разъем для наушников имеет встроенный аппаратный переключатель, который перенаправляет звук, то вы SOL (извините, не повезло). Однако, если ОС обнаруживает, когда линия подключена к разъему для наушников, скорее всего, звук не переключается механически.
Я обнаружил, что одновременная работа с наушниками и динамиками работает лучше всего.
Скриншот hdajackretask для переключения наушников на динамики:
После того, как вы нажмете «Применить сейчас», будет создан сценарий оболочки для внесения изменений и запрос на ввод пароля суперпользователя. Скрипт также сохраняется в /tmp который может быть скопирован и позже выполнен с помощью sudo из командной строки.
Выполнение командной строки
Как упоминалось ранее, hdajackretask создает скрипт, script.sh в /tmp похожий на /tmp/hda-jack-retask-QW1EEZ/ для функций домкрата вы хотите:
#!/bin/sh echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
Скопируйте этот скрипт куда-нибудь в вашей системе (кроме / tmp)
cd /tmp/hda-jack-retask-QW1EEZ cp script.sh ~username/speaker.sh
Затем отредактируйте speaker.sh
cd ~username nano speaker.sh
Добавьте строку killall pulseaudio & в верхней части файла. Это необходимо, потому что функция гнезда не может быть изменена во время pulseaudio бежит. По умолчанию pulseaudio возродится. Также измените путь к errors.log подать в /tmp или где угодно
#!/bin/sh killall pulseaudio & echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/errors.log
Документация для hdajackretask
Большинство звуковых карт HDA Intel в некоторой степени поддерживают повторную настройку, то есть могут использоваться для нескольких целей. Этот инструмент представляет собой графический интерфейс, который упрощает повторное подключение ваших гнезд — например, превратите ваш микрофонный разъем в дополнительные наушники или почему бы не сделать их одновременно линейными выходами и подключить их к ресиверу объемного звучания?
Быстрый старт
Запустите приложение «hdajackretask» из командной строки. Выберите кодек в верхней панели; у некоторых людей есть только один — если у вас их больше одного, один является «основным», а остальные, вероятно, являются кодеками HDMI.
Все разъемы (и другие входы / выходы) отображаются в разделе «Конфигурация контактов». Чтобы переопределить одно из ваших гнезд, установите флажок «Переопределить» для этого контакта и выберите нужную функцию. Примечание. Если вы выбрали переопределение «Line out (back)», вы также должны иметь переопределение «Line out (front)». Переопределение «Line out (Center/LFE)» будет работать только с двумя предыдущими переопределениями и т. Д.
Вы можете опробовать новую конфигурацию, нажав «Применить сейчас». Чтобы сделать вашу новую конфигурацию загрузочной по умолчанию, нажмите «Установить загрузочное переопределение». Выполнение любого из этих действий требует привилегий суперпользователя, поэтому вам, вероятно, будет предложен ваш пароль.
Quickend
Ты облажался? Нажмите кнопку «Удалить загрузку», и после завершения процесса выключите компьютер, немного подождите и включите его снова. Теперь вы должны вернуться туда, где вы начали.
Это сработало?
Если это так, будь счастлив, поделись радостью, сделай что-нибудь приятное!
Если этого не произошло, вот несколько вещей, которые можно попробовать:
- Зайдите в alsamixer и посмотрите, есть ли новые регуляторы громкости, и посмотрите, не включены ли они и установлены ли разумные значения.
- Иногда драйвер не отключает неподключенные контакты (если они не подключены, зачем беспокоиться?). Вы можете исправить это, выключив компьютер на некоторое время.
- Смотрите опцию «модель = авто» ниже
Если это не помогает, велика вероятность того, что вы столкнетесь с драйверами или аппаратными ограничениями. Вы можете столкнуться с ошибками в драйвере (возможно, никто не тестировал четыре наушника раньше!). Если вы это сделаете, не стесняйтесь сообщать о них в списке рассылки alsa-devel: однако, из-за нехватки рабочей силы, есть вероятность, что это будет решено с очень низким приоритетом (наличие стандартной работы звука для стандартной конфигурации важнее, чем поддержка странных конфигураций). Однако, если вы являетесь хакером ядра и придумали патч, который решает вашу проблему, не привлекая ничего другого, шансы довольно высоки, он будет объединен.
Если вы подозреваете, что проблема связана с этим приложением с графическим интерфейсом, а не с драйвером ядра, не стесняйтесь написать мне письмо (и, если хотите, добавьте патч!). Если это так, напишите на [email protected].
Опции
- Показать неподключенные контакты Ваш BIOS отвечает за настройку того, какие контакты на кодеке действительно подключены к чему-либо, а какие нет. Иногда BIOS глючит и не показывает все ваши гнезда. Если у вас есть разъем, в BIOS которого нет, попробуйте включить случайные контакты и посмотреть, работает ли он.
- Set Model = auto. Некоторые кодеки, особенно старые и в ядрах 3.8 и ниже, жестко запрограммированы для использования конкретной модели и, таким образом, не будут заботиться о ваших переопределениях. Во многих случаях и с достаточно новым ядром автоматический парсер теперь работает хорошо и для этих кодеков. Вы можете принудительно использовать автоматический анализатор, установив этот флажок. В некоторых случаях, однако, явная модель существует по причине, если так, вы застряли.
- Расширенное переопределение Это только для экспертов. Это заставляет вас выбирать каждое поле конфигурации отдельно, а не только несколько предопределенных значений, которые имеют смысл. Обратите внимание, что большинство комбинаций здесь недопустимы тем или иным образом, поэтому вам, вероятно, не стоит связываться с этим, если вы не прочитали и не поняли раздел «Конфигурация по умолчанию» спецификации HD Audio. (Который на момент написания статьи доступен здесь: http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/high-definition-audio-specification.pdf)
- Подсказки синтаксического анализатора Это позволяет отправлять специальные «подсказки» драйверу, что приводит к разному поведению синтаксического анализа. Оставьте их в настройках «по умолчанию», если вы не прочитали документацию на драйвер. (Который на момент написания этой статьи доступен здесь: https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt — см. Раздел «Строки подсказок».)