Настройте аудиовход/выход через WirePlumber в Ubuntu 24.04
Как вы знаете, Ubuntu использует PipeWire в качестве замены PulseAudio для звукового сервера по умолчанию, начиная с Ubuntu 23.04. И теперь он использует WirePlumber для управления сеансом и политикой Pipewire.
С помощью WirePlumber вы можете настроить больше параметров вывода и ввода звука. Вы можете использовать команду Linux для переключения устройства ввода/вывода звука по умолчанию, изменения уровня громкости, а также отключения/включения звука и микрофона.
Кроме того, вы можете изменить битовую глубину звука, частоту дискретизации, качество передискретизации и другие свойства для определенного звукового устройства.
ПРИМЕЧАНИЕ. Это руководство НЕ работает для Ubuntu 22.04 и более ранних версий, поскольку по умолчанию они используют PulseAudio. И скрипт lua НЕ работает для 24.10 и более поздних версий из-за изменения политики!
Используйте команду wpctl
WirePlumber имеет инструмент командной строки под названием wpctl
. Это полезно для получения статуса и свойств вашего устройства, а также для оперативного изменения некоторых настроек, таких как установка аудиоустройства по умолчанию и изменение громкости.
Сначала откройте окно терминала (Ctrl+Alt+T
) и выполните команду:
wpctl status
Команда выведет все аудиоустройства, приемники звука и источники звука. Те, с * в начале, используются по умолчанию. А цифры (например, 48, 49, 39 на скриншоте ниже) — это идентификаторы.
Чтобы переключить устройство ввода или вывода звука по умолчанию, если у вас доступно несколько устройств, используйте команду:
wpctl set-default ID
Здесь замените идентификатор номером, который вы получили из последней команды wpctl status
.
Вы также можете использовать приведенные ниже команды для увеличения, уменьшения или установки громкости. Это может быть полезно для сценариев или привязки сочетаний клавиш.
Увеличьте громкость на 5 % для аудиовыхода по умолчанию с ограничением в 150 %:
wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
Уменьшите громкость на 5 % для аудиовыхода по умолчанию:
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
Установите громкость вывода по умолчанию на 0,5:
wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.5
-
Включите/отключите звук для вывода звука по умолчанию (или замените
toggle
на0
, чтобы включить звук, или на1
, чтобы отключить звук):wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
В приведенных выше командах вы можете заменить @DEFAULT_AUDIO_SINK@
на @DEFAULT_AUDIO_SOURCE@
для аудиовхода по умолчанию (например, микрофона). Или вместо этого используйте идентификационный номер для определенного приемника/источника звука.
Используйте скрипт lua для настройки свойств звука.
ПРИМЕЧАНИЕ. Этот шаг работает только для WirePlumber 0.4.x (24.04 имеет версию 0.4.17). Поддержка сценариев lua прекращена с версии 0.5 (24.10 имеет версию 0.5.6).
Шаг 1. Получите имя целевого звукового ввода/вывода.
Поскольку идентификационные номера звуковых устройств являются динамическими и часто меняются, вам необходимо узнать device.name
или node.name
, чтобы сообщить WireBlumder, какое устройство вы хотите настроить. .
Сначала выполните команду ниже, чтобы узнать идентификатор целевого устройства/приемника, который вы хотите настроить:
wpctl status
Затем используйте команду ниже, чтобы отобразить дополнительную информацию о целевом объекте (замените номер 49 в соответствии с последней командой).
wpctl inspect 49
В выводе скопируйте значение «device.name» или «node.name» для использования на следующем шаге.
Шаг 2. Создайте и отредактируйте файл сценария Lua.
Ubuntu 24.04 до сих пор использует сценарии lua для настройки WirePlumber. Файлы конфигурации по умолчанию расположены в каталоге /usr/share/wireplumber
. При этом пользователь может создавать собственные файлы конфигурации в каталогах /etc/wireplumber
или ~/.config/wireplumber
.
1. Только для текущего пользователя: нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал и выполнить команды:
Сначала создайте локальную папку конфигурации Wireplumber:
mkdir -p ~/.config/wireplumber/
Затем создайте подпапку
main.lua.d
для хранения скриптов lua:mkdir -p ~/.config/wireplumber/main.lua.d
Наконец, создайте и откройте файл пользовательского сценария с именем
51-alsa-custom.lua
:gnome-text-editor ~/.config/wireplumber/main.lua.d/51-alsa-custom.lua
Здесь замените
gnome-text-editor
, зависит от среды вашего рабочего стола. Используйтеmusepad
для XFCE,pluma
для MATE или текстовый редактор командной строкиnano
, который работает на большинстве настольных компьютеров.
2. Когда файл откроется, вставьте его содержимое ниже и отредактируйте соответствующим образом.
rule = {
matches = {
{
{ "node.name", "matches", "alsa_output.pci-0000_00_1f.3.analog-stereo" },
},
},
apply_properties = {
["node.description"] = "Laptop Built-in Speaker",
["audio.format"] = "S32LE",
["audio.rate"] = 48000
},
}
table.insert(alsa_monitor.rules,rule)
ВАЖНО: неправильная конфигурация и опечатки в этом файле МОГУТ нарушить вывод или ввод звука! Делайте это осторожно!
Здесь вам необходимо:
- Замените
alsa_output.pci-0000_00_1f.3.analog-stereo
на имя вашего аудиоустройства/приемника (см. шаг 1). Добавьте больше (или удалите, если необходимо) и соответствующим образом измените настройки звука в разделе «apply_properties». Другие свойства включают в себя:
- [“node.disabled”]=ложь,
- ["приоритет.драйвер"]=100,
- [“приоритет.сессия”]=100,
- [“node.pause-on-idle”]=ложь,
- ["дизер.шум"]=0,
- ["dither.method"]="нет", — "прямоугольный", "треугольный" или "фигурный5"
- [“аудио.каналы”]=2,
- [“session.suspend-timeout-секунды”]=5, — 0 отключает приостановку
Дополнительные параметры можно найти в файле /usr/share/wireplumber/main.lua.d/50-alsa-config.lua
или в официальной документации по свойствам устройства/узла (некоторые из них могут быть недоступен, поскольку WireBlumder устарел в Ubuntu).
В текстовом редакторе командной строки nano нажмите Ctrl+S, чтобы сохранить файл, и Ctrl+X, чтобы выйти.
Шаг 3. Примените изменения.
Чтобы применить новый файл конфигурации, просто запустите приведенную ниже команду, чтобы перезапустить службу Wireblumder:
systemctl --user restart wireplumber.service
Отменить :
Любые неправильные настройки или опечатки, допущенные вами на последнем шаге, могут привести к поломке вывода/ввода звука. В этом случае просто удалите этот файл с помощью команды ниже:
rm ~/.config/wireplumber/main.lua.d/51-alsa-custom.lua
Затем перезапустите службу (см. Шаг 3), чтобы все восстановить по умолчанию.