Отключить звуковую карту linux

Обновлено: 24.11.2024

Управлять PulseAudio с помощью pavucontrol — это очень удобно, но требует много времени и неудобств: вам приходится много щелкать на множестве вкладок каждый раз, когда вы хотите что-то изменить.

Мне нужны были быстрые способы сделать несколько вещей, которые я делаю часто: выключить все микрофоны (это важно!); переключиться на внешние динамики, чтобы я мог слушать музыку; отправить аудиовыход на HDMI, если я даю публичную презентацию. Ни в одном из этих случаев я не хочу тратить несколько минут на возню с pavucontrol. К счастью, в PulseAudio есть способы внесения изменений из командной строки. Не хватает только документации.

Примечание. Теперь у меня есть скрипт pulsehelper.py, в котором для упрощения интерфейса используются приведенные ниже команды.

Большая часть этого достигается с помощью двух команд, pacmd и pactl. Я не придумал правила, когда использовать одно против другого; кажется, они выполняют много одинаковых функций, и я не уверен, почему их две.

Если вы обычно используете терминал шириной 80 столбцов, вам может понадобиться растянуть его шире, пока вы тестируете команды PA.

Текущий статус

Список звуковых карт pactl list shortcards Список всего pacmd list-cards
Это очень длинный список, но в нем много полезной информации.

Громкость

У Pulseaudio разные уровни громкости для каждого приемника. Вы можете перечислить их с помощью:

Но этого недостаточно, поскольку Pulse поддерживает отдельный приемник и отдельный том для каждого приложения. Вы можете получить подробный список запущенных программ, воспроизводящих звук, следующим образом:

Раковина указана только по номеру; он соответствует идентификатору приемника, который вы получаете от

Что-то изменить

Включение/отключение звуковых карт

Сначала получите индексы карточек, которые вы хотите включить или отключить.

Итак, индекс 0 — это моя звуковая карта, встроенная в концентратор USB-C (потому что она на USB); индекс 1 — это встроенный звук ноутбука (на PCI).

Далее вам потребуется список профилей, доступных для каждой карты. Просто просмотрите длинный вывод pacmd list-cards и просмотрите профили для каждого устройства. Я не знаю более короткого пути. Например, моя карта 0, USB, имеет

Теперь вы можете установить профиль для конкретной карты. Например, чтобы включить USB-карту только как выход и отключить внутреннюю карту:

Настройка резервных вариантов (по умолчанию)

Давайте сначала поговорим о динамиках, которые PulseAudio называет "приемниками" (микрофоны – это "источники"). Вы можете перечислить все доступные приемники с помощью pacmd list-sinks, если вам нужны страницы и страницы вывода.

Чтобы получить более короткий вывод и узнать текущий приемник:

Обратите внимание на звездочку рядом с приемником 5: в настоящее время это мой запасной динамик (по умолчанию). Теоретически это означает, что если я что-нибудь запущу, это пойдет на мои внешние динамики, подключенные к концентратору USB. На практике это не всегда так, поскольку у PulseAudio есть собственное (секретное) представление о приложениях, которые должны использовать другой приемник.

Вооружившись этим, вы можете установить новый приемник по умолчанию. Встроенные динамики моего ноутбука имеют индекс 4 (я знаю это, потому что это единственный динамик, который не является ни USB, ни HDMI). Итак:

За исключением -- подождите, нет. Установка приемника по умолчанию на самом деле ничего не делает, и каждая программа продолжает выводить туда, куда она выводила в последний раз.

Если вы хотите иметь возможность изменить приемник по умолчанию из командной строки во время выполнения, вам нужно отредактировать /etc/pulse/default.pa, найти строку с module-stream -восстановить и добавить "=false" в конце:

Вы также можете установить другие параметры, например restore_volume=false : см. документацию по module-stream-restore.

Вам потребуется перезапустить PulseAudio или перезагрузить компьютер, но после этого вы сможете изменить приемник по умолчанию. Однако изменение источника по умолчанию по-прежнему не работает для меня; pactl set-default-source 4 ничего не меняет. Вздох.

Пока вы редактируете этот файл, взгляните на некоторые другие параметры. Например, горячее подключение звуковой карты иногда приводит к тому, что запущенные приложения переключаются на только что подключенную опцию. Я думаю, это из-за того, что там есть и другие интересные настройки.

Полезный справочный материал по Pulse, резервным вариантам и их подводным камням. Напрасно: неуловимый приемник PulseAudio по умолчанию. Хотя в этой статье упоминается вкладка Приложения в pavucontrol, которой нет у меня.

Разумеется, это все было для стоков (колонок). Но источники (микрофоны) работают точно так же.

Использовать определенный вывод или ввод для одной программы

Возможность изменять значения по умолчанию — это здорово. Но иногда вы можете захотеть запустить программу и заставить ее использовать устройство, отличное от устройства по умолчанию, не меняя значения по умолчанию для всего остального. Это можно сделать с помощью переменных среды PULSE_SINK и PULSE_SOURCE.

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

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

Отключение микрофонов

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

Первые три из них — HDMI. Я даже не знал, что у HDMI есть микрофон. Остальные три — это две записи для гипотетического микрофона гарнитуры, который я мог бы подключить, плюс, наконец, реальный встроенный микрофон. Это приглушено; Я отключил звук в pavucontrol прошлой ночью перед тем, как выключиться, и похоже, что пульс запомнил это, и это приятно знать. Маленький светодиод на клавише F4 (отключение микрофона) горит, поэтому приятно знать, что этот ноутбук дает мне видимую индикацию, когда встроенный микрофон отключен.

Обратите внимание, что в предыдущем списке перед встроенным микрофоном стоит звездочка, что означает, что он является источником по умолчанию. Но если вам нужно получить имя pulseaudio для источника по умолчанию для скрипта, более короткий способ:

Хорошо, у вас есть список микрофонов. Как вы их заглушаете? или используйте 0, чтобы включить звук. Вы можете комбинировать это с предыдущей командой, чтобы отключить звук источника по умолчанию: и аналогично для приемника по умолчанию:

Если вы хотите убедиться, что все источники отключены,

Подробнее об отключении звука, а также хороший скрипт для отключения звука или регулировки громкости микрофона: Как отключить звук из командной строки?

Переместить уже воспроизводимый поток

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

Сначала получите индекс потока:

Получите индекс нового приемника, на котором вы хотите прослушивать поток, следуя приведенным выше инструкциям. Затем: pacmd move-sink-input stream_index sink_index

В моем файле default.pa, но всякий раз, когда я выхожу из режима сна, он снова использует неправильный профиль. Можно ли отключить профиль или, может быть, предотвратить выбор неправильного профиля?

Последний раз редактировалось Awlex (2020-12-17 19:28:39)

Попробуйте добавить скрипт для установки параметров модуля в /lib/systemd/system-sleep/.

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

Проверьте на вкладке конфигурации pavucontrols или

и выберите правильный предварительно выделенный профиль, что в целом должно обеспечить запоминание правильного профиля.

Попробуйте добавить скрипт для установки параметров модуля в /lib/systemd/system-sleep/.

Например:

К сожалению, не сработало.

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

Проверьте вкладку конфигурации pavucontrols или

и выберите правильный предварительно выделенный профиль, что в целом должно обеспечить запоминание правильного профиля.

Я всегда использую pavucontrol или pactl для установки профиля, но всегда получаю неправильный профиль после сна/перезагрузки.

Проверьте журнал, чтобы узнать, почему он не работает. Будет ли команда pactl(1) работать изолированно?

Сказав, что в этом вопросе я бы уступил V1del, они действительно знают свое аудио (и почти все остальное).

Вы на самом деле настраиваете профиль или выбираете выделенный приемник?

В любом случае, что может помочь, так это выгрузить модуль-переключатель-на-порту-доступный (. и раскомментировать/удалить его из вашего /etc/pulse/default.pa), если вы действительно хотите отключить все автоматически определяемые профили. вы также можете просто прокомментировать module-udev-detect в том же файле и использовать выделенный автономный приемник.

Чтобы предложение HoaS сработало, вам нужно сделать еще кое-что в этом скрипте (я не думаю, что ваш приемник изначально выгружен, и вместо этого вам нужно снова установить его по умолчанию или около того), но вы необходимо предоставить доступ к сеансу DBUS вашего пользователя команде pactl, поэтому лучше сделать что-то вроде

замените $USER и $UID в соответствии с вашей ситуацией, а также имя приемника в соответствии с соответствующими выходными данными.

Последний раз редактировалось V1del (2020-12-14 15:06:05)

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

Иногда может случиться так, что у вас есть звуковое устройство, которое вы не используете, или вы относитесь к тем людям, которые не любят Pulseaudio и вместо этого используют Alsa. Особенно с Alsa это становится очень полезным, если у вас включено только то звуковое устройство, которое вы фактически используете. Вот несколько замечаний об использовании Alsa вместо Pulseaudio в Linux.

<р>1. Начните с минимальной установки. Когда вы начинаете с минимальной установки (устанавливая только основные системные компоненты во время установки), вы получаете право решать, что входит в систему по мере ее настройки.Помните, что для использования Alsa вам нужен только базовый системный пакет libasound2.

<р>3. Пользователи Убунту. В настоящее время кажется, что Ubuntu имеет некоторые проблемы с комбинацией Pulseaudio и startx. Если вы решите пойти с Alsa, я определенно рекомендую помнить об этом. Если вы используете Ubuntu, я бы порекомендовал использовать версию LTS, так как в ней меньше странных ошибок, которые могут возникнуть при попытке избавиться от Pulseaudio.

Если вы, тем не менее, не хотите удалять Pulseaudio, а просто хотите добавить в черный список некачественное звуковое устройство, продолжайте читать. Черный список по-прежнему полезен, даже если вы используете Pulseaudio. Если вы являетесь пользователем Alsa, то следующее является более или менее обязательным.

Внесение звукового устройства в черный список

Введите как root или sudo внутри терминала:

Примечание. Я предпочитаю использовать здесь текстовый редактор, но вы, конечно, можете перечислить записи внутри файла, просто используя программу с именем less или любую другую по вашему выбору.

Команда откроет текстовый файл с записями, которые могут выглядеть следующим образом:

Здесь у нас есть список доступных звуковых устройств 0 snd_hda_intel по умолчанию. Также обратите внимание, что если у вас есть веб-камера, она будет отображаться в этом файле (в приведенном выше примере: 2 snd_usb_audio). Вам не нужно беспокоиться о веб-камере, поскольку она не имеет характеристик динамика, что, в свою очередь, гарантирует, что она будет хорошо работать с другими устройствами.

В приведенном выше примере мы видим два звуковых устройства ca106 и hda_intel. Поскольку мы хотим использовать ca106 в качестве поставщика звука по умолчанию, мы внесем hda_intel в черный список. В терминале как root или sudo:

Добавьте следующую запись в файл, а затем сохраните и закройте его:

Приведенная выше запись указывает вашей системе игнорировать модуль snd_hda_intel и тем самым предотвращать загрузку звуковой карты Intel, что, в свою очередь, делает ca106 устройством по умолчанию.

Примечание: вы можете во что бы то ни стало выбрать имя для файла черного списка, отличное от sound.blacklist.conf, если оно имеет формат ssomething.blacklist.conf . При удалении файла черного списка или удалении записей из него система вернется в предыдущее состояние. Не забывайте всегда перезагружать компьютер после внесения в черный список или удаления чего-либо из черных списков, чтобы увидеть фактические результаты.

Почему вы хотите использовать Alsa?

Исходя из моего опыта, Alsa оказалась гораздо менее требовательной к ресурсам, чем Pulseaudio, когда она работает. Одной из причин, конечно же, является тот факт, что зависимости Pulseaudio занимают гораздо больше места на жестком диске, чем зависимости Alsa. Вышеупомянутое может иметь значение, если вы используете старый компьютер и вам нужно предостеречь от чрезмерного использования ресурсов.

Одна вещь, которую я считаю очень полезной при использовании Alsa, заключается в том, что с Alsa вы действительно можете получить больше контроля над своими звуковыми устройствами. Например, если вы используете Skype, вы получите стандартную метку устройства без каких-либо возможностей настройки звука в Skype при использовании Pulseaudio. Однако с помощью Alsa вы можете настроить свои устройства, например, таким образом, чтобы ваша акустическая система воспроизводила звук звонка телефона, когда в то же время ваша гарнитура могла бы работать как микрофон.

На дворе 2020 год. В десятке основных технических задач у нас все еще есть Linux и его настройки звука.

Проблема

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

На этом снимке экрана показана нужная мне конфигурация. Из нескольких возможных устройств ввода и вывода я хочу использовать это. Однако после каждой перезагрузки эти настройки меняются и сбрасываются - по-видимому, случайным образом.

Решение

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

Это версия Ubuntu, которую я сейчас использую, и в которой сработали следующие шаги.

Во-первых, давайте получим список доступных устройств вывода звука (приемников) с помощью команды pactl:

Затем сделайте то же самое для устройств ввода (источников):

Теперь, используя параметры set-default-sink и set-default-source команды pactl, мы можем установить устройства ввода и вывода по умолчанию. Это можно сделать либо с помощью номера, либо имени устройства (однако я рекомендую работать с именами устройств, поскольку эти числа меняются при перезагрузке).

Пример:

При испытании этих команд с разными источниками и приемниками результат должен быть немедленно отражен в диалоговом окне настроек звука.

Сделать решение постоянным

Обратите внимание, что эти настройки являются временными и не сохранятся после перезагрузки компьютера.Чтобы сделать эти настройки постоянными (ну, вроде), я просто добавил эти pactl set-default. инструкции к моему файлу ~/.bashrc - проблема решена.

Откройте файл .bashrc с помощью nano (или другого редактора по вашему выбору).

Добавьте эти инструкции в конец файла и сохраните его.

Купить мне кофе?

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

Отказ от ответственности: этот веб-сайт, его содержание и мнения являются моими собственными и никоим образом не представляют мнение моего работодателя.

Читайте также: