Вопрос или проблема
На моих системах Xubuntu (с использованием fvwm в качестве менеджера окон) у меня есть следующие две команды для эмуляции звука терминального звонка X11 (управление-G и подобное)
pactl upload-sample /usr/share/sounds/freedesktop/stereo/complete.oga x11-bell
pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY
Это работает на 20.04 и работало на 22.04. Я только что обновился с 22.04 до 24.04 (do-release-upgrade), и теперь вторая команда выдает ошибку: Failure: no such entity
Как я могу вернуть звонок?
Нашел решение. pactl list показывает, что загруженный образец обрабатывается pipewire. Поиск pipewire в synaptic показывает новый отдельный пакет libpipewire-0.3-modules-x11, который не был установлен.
Установка его решает проблему.
Ответ или решение
Ошибка, о которой идет речь, возникает при выполнении команды pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY
после обновления с версии Ubuntu 22.04 до 24.04. Сообщение об ошибке "No such entity" указывает, что система не может найти указанный модуль или его компоненты. Разберемся в деталях, чтобы понять причину и предложить потенциалное решение.
Теория
PulseAudio и PipeWire являются аудиосерверами, которые часто используют для управления звуками в современных Linux-системах, включая Ubuntu. С помощью pactl
(PulseAudio Control) можно загружать модули и управлять ими, чтобы, например, создавать различные звуковые эффекты и реакции на системные события, такие как X11 bell. Команда pactl load-module module-x11-bell
используется для загрузки модуля, который связывает X11 bell с определённой звуковой выборкой.
Обновление системы часто приводит к изменениям в пакетах и их зависимостях. В случае обновления до более новых версий дистрибутива Ubuntu с внесенными изменениями, такими как переход на PipeWire в качестве основного аудиосервера, возникает необходимость в дополнительных модулях или изменениях в конфигурации. В частности, недоступность модуля может быть результатом разделения функциональности по новым пакетам для обеспечения модульности и лучшей управляемости. В вашем случае решение найдено в установке нового пакета libpipewire-0.3-modules-x11
.
Пример
Ваша ситуация после обновления на Ubuntu 24.04 произошла из-за того, что определенный функционал был вынесен в отдельный пакет, который не был установлен автоматически. Вот пример, как это работает:
-
Разбираем стандартный процесс с PulseAudio:
- Вы загружаете аудиофайл с помощью
pactl upload-sample
, который хранится в вашей системе под именем «x11-bell». - В результате выполнения
pactl load-module
требуется, чтобы все зависимости и связанные компоненты были доступны в системе.
- Вы загружаете аудиофайл с помощью
-
Изменения при переходе на PipeWire:
- PipeWire становится новым стандартом для многих семейств Linux. Оно более продвинуто в плане мультимедиа платформы, что улучшает совместимость и позволяет использовать аудио и видео одновременно для разных приложений.
- Переход на PipeWire требовал от разработчиков распределения функционала через новые пакеты, такие как
libpipewire-0.3-modules-x11
, которые не всегда автоматически инсталлируются при обновлении ОС.
Применение
Чтобы исправить вашу проблему и восстановить функционал звукового сигнала в X11, сделайте следующее:
-
Проверка текущей конфигурации:
- Убедитесь, что PipeWire действительно управляет аудиосистемой. Для этого выполните
pactl info
и проверьте, какой сервер используется.
- Убедитесь, что PipeWire действительно управляет аудиосистемой. Для этого выполните
-
Установка необходимого пакета:
- Установите пакет
libpipewire-0.3-modules-x11
, используя команду:sudo apt install libpipewire-0.3-modules-x11
- Этот пакет включает модули для обеспечения обратной совместимости и работы с такими элементами, как X11 bell.
- Установите пакет
-
Перезагрузка и повторная настройка модулей:
- После установки пакета рекомендуется перезагрузить систему или, как минимум, перезапустить PipeWire:
systemctl --user restart pipewire
- После этого попробуйте вновь выполнить ваши команды для загрузки звука колокольчика.
- После установки пакета рекомендуется перезагрузить систему или, как минимум, перезапустить PipeWire:
-
Проверка работы системы:
- Используйте
pactl list samples
для удостоверения в том, что ваш загруженный сэмпл доступен, иpactl list
для проверки загруженных модулей.
- Используйте
Переход на PipeWire и вышеупомянутые изменения могут приносить определенные неудобства, но это также предоставляет продвинутую платформу для мультимедийных нужд. Установка недостающих модулей и корректировка настроек позволит сохранить привычную функциональность и получить новые возможности.