Разряд батарейки от ошибки в Pipewire

Сегодня я расскажу об ошибке, которая может повлиять на энергопотребление вашей системы, если вы используете дистрибутив Linux с аудио сервером Pipewire на ноутбуке или другом устройстве со встроенной камерой. Здесь вы узнаете, как проверить, влияет ли эта ошибка на вас, и как ее устранить, пока она не будет исправлена разработчиками.

Видео версия Ссылка на заголовок

Проверка Pipewire Ссылка на заголовок

Если вы не знаете, что такое Pipewire, или не уверены, есть ли он в вашей системе, вы можете проверить это, выполнив команду pactl info и проверив строку Server Name, или поискав процесс pipewire в вашем Системном мониторе.

pactl info | grep "Server Name"
# Server Name: PulseAudio (on PipeWire 1.2.1)
ps -e | grep "pipewire"
#  2052 ?        00:18:56 pipewire
#  2301 ?        00:36:10 pipewire-pulse
Информация
Pipewire - это программное обеспечение, которое управляет доступом к вводы и выводу медиаданных, выполняя роль аудиосервера, менеджера разрешений на запись экрана, ввода камеры и иных подобных компонентов.

Проверка на эту ошибку Ссылка на заголовок

Чтобы проверить наличие этой конкретной проблемы, сначала нужно убедиться, что ни одно из ваших пользовательских приложений не использует камеру напрямую. Затем вы можете запустить fuser --verbose /dev/video0, и если он выдаст что-то, содержащее pipewire или wireplumber, несмотря на то, что вы явно не используете камеру в этот момент, то возможно, у вас проявилась эта ошибка.

fuser --verbose /dev/video0
#                     USER        PID ACCESS COMMAND
#/dev/video0:         laika     666245 F.... wireplumber
Информация
Wireplumber - это менеджер сессий по умолчанию для Pipewire, практически управляющий им фоновой службой. Он может быть появиться вместо pipewire, в зависимости от версии.

Другой способ проверки, который вы можете использовать для полной уверенности - установить утилиту powertop, выполнить команду `sudo powertop, затем перейти во вкладку “Device Statistics” с помощью клавиши табуляции и с помощью клавиш со стрелками найти вашу камеру. Если она работает на 100%, несмотря на то, что не используется на самом деле, значит, вас затрагивает эта ошибка, камера постоянно получает ток, что может привести к заметному разряду батареи.

Интерфейс Powertop TUI показывает, что встроенная камера используется на 100 процентов. Кстати, если являетесь пользователем скринридера, вы не сможете воспользоваться этой утилитой, прошу прощения.

Временное исправление Ссылка на заголовок

Теперь, если вы знаете, что проблема у вас есть, вы можете временно обойти ее, добавив файл конфигурации по адресу ~/.config/wireplumber/wireplumber.conf.d/10-disable-camera.conf с таким содержанием:

wireplumber.profiles = {
  main = {
    monitor.libcamera = disabled
  }
}

После этого необходимо перезапустить службу wireplumber, либо выполнив команду systemctl restart --user wireplumber, либо перезагрузившись.

Это отлючит отслеживание использования камеры в Pipewire, что приведет к поломке индикаторов «Камера используется» в окружениях KDE или GNOME, но как можно заметить, ранее показанные признаки постоянной работы камеры больше не присутствуют.

Вывод Ссылка на заголовок

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

Советую также проверить Gitlab issue посвящённый этой ошибке для получения актуальной информации об этой проблеме, так как эта запись может устареть.