(pulseaudio) bluez5-util.c: GetManagedObjects() завершился с ошибкой: org.freedesktop.DBus.Error.NoReply: Ответ не получен

Вопрос или проблема

Я просматривал свои логи и нашел это в самом верху:

[pulseaudio] bluez5-util.c: GetManagedObjects() не удалось: org.freedesktop.DBus.Error.NoReply: Ответ не получен. Возможные причины: удаленное приложение не отправило ответ, политика безопасности шины сообщений заблокировала ответ, время ожидания ответа истекло или сетевое соединение было нарушено.

Я понятия не имею, что это значит. Мой компьютер запускается нормально, и я не замечал никаких ошибок до сих пор. Но на всякий случай, знает ли кто-нибудь, как это решить?

Также, чтобы было понятно, я прочитал ошибку и вижу часть “возможные причины”, но я не понимаю, что имеется в виду под “удаленное приложение” или “политика безопасности шины сообщений”.

Краткий ответ: выполните следующую команду:

cp /usr/share/gdm/default.pa ~/.config/pulse/

Объяснение:

Я немного поискал в интернете и нашел, что pulseaudio — это аудиоподсистема в Ubuntu в наше время, и команду pactl можно использовать для настройки ее параметров.

Эта команда имеет довольно много подкоманд, самой интересной из которых является list.

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

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

Выполнение команды pactl unload-module для каждого модуля, связанного с bluetooth, не сработало, так как при перезагрузке модули загружались снова, и ошибка снова появлялась в логе. Следует заметить, что pactl заявлен как программа для “Управления работающим звуковым сервером PulseAudio”: она фактически не изменяет сохраненную конфигурацию звукового сервера.

Я немного больше поискал в интернете и нашел, что настройки PulseAudio хранятся в некотором файле default.pa, и я нашел два экземпляра этого файла на своей системе: один большой — в /etc/pulse/ и один маленький — в /usr/share/gdm/.

Очевидно, что большой файл — это глобальные настройки PulseAudio, а маленький файл — это настройки пользователя, как-то связанные с gnome desktop manager.

Содержимое пользовательского файла default.pa было очень интересным, так как оно содержало команды для выполнения именно того, что я хотел: отключить модули, связанные с bluetooth. Он не отключает модуль bluez сам по себе, но, возясь с pactl ранее, я обнаружил, что отключение двух остальных модулей, связанных с bluetooth, автоматически также отключает модуль bluez.

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

Я еще немного больше поискал в интернете и нашел, что местоположение пользовательской локальной копии этого файла настроек должно быть ~/.config/pulse/default.pa.

Следовательно, я рассудил, что если я просто скопирую файл gdm на это местоположение в своем профиле, проблема будет решена.

И так и произошло.

Для тех, у кого нет копии файла с логикой отключения bluetooth, вот раздел файла (из ubuntu 20.04), который реализует эту функциональность.

### Удаление драйверных модулей для Bluetooth оборудования
.ifexists module-bluetooth-policy.so
  unload-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
  unload-module module-bluetooth-discover
.endif

Добавление строк, которые предлагает Майк в своем ответе, не сработало для меня, к сожалению. У меня также не было файла /usr/share/gdm/default.pa

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

sudo nano /etc/pulse/default.pa

Затем я закомментировал строки, которые загружают модуль bluetooth. И ошибка теперь исчезла!

### Автоматическая загрузка драйверных модулей для Bluetooth оборудования (отредактировано)
#.ifexists module-bluetooth-policy.so
#load-module module-bluetooth-policy
#.endif

#.ifexists module-bluetooth-discover.so
#load-module module-bluetooth-discover
#.endif

Или, если вам не нравится менять глобальный конфигурационный файл как root, вы можете скопировать файл из /etc/pulse/default.pa в ваш ~/.config/pulse/default.pa и отредактировать файл и закомментировать эти строки локально.

Обратите внимание, что у меня система, в которой нет оборудования wifi/bluetooth.

Ответ или решение

Ошибка «[pulseaudio] bluez5-util.c: GetManagedObjects() failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply» часто возникает при взаимодействии PulseAudio и Bluetooth через D-Bus, особенно на системах без аппаратной поддержки Bluetooth. Это сообщение о неполучении ответа может стать источником беспокойства, особенно если пользователь не понимает технические детали, указанные в сообщении. Давайте разберём это подробнее.

Понимание Ошибки

PulseAudio — это звуковая подсистема в Linux, которая обычно управляет всей аудиосистемой. D-Bus — это система межпроцессного взаимодействия, через которую разные процессы на системе могут общаться между собой. BlueZ — это стек протоколов для Linux, который обеспечивает поддержку Bluetooth.

Ошибочное сообщение указывает на то, что PulseAudio пытается получить доступ к объектам в Bluetooth-стеке через D-Bus, но по каким-то причинам не получает ответа. Возможные причины:

  • Приложение, к которому обращаются, не отвечает.
  • Секьюрити-политика D-Bus блокирует ответ.
  • Время ожидания истекло.
  • Проблемы с сетевым подключением.

Решение Проблемы

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

  1. Правка Локального Конфигурационного Файла

    Создайте или откорректируйте файл ~/.config/pulse/default.pa. Это действие настроит PulseAudio специфично для вашего пользователя без изменения глобальной конфигурации.

    cp /usr/share/gdm/default.pa ~/.config/pulse/default.pa

    Добавьте или раскомментируйте следующие строки для отключения Bluetooth-модулей:

    ### unload driver modules for Bluetooth hardware
    .ifexists module-bluetooth-policy.so
     unload-module module-bluetooth-policy
    .endif
    
    .ifexists module-bluetooth-discover.so
     unload-module module-bluetooth-discover
    .endif
  2. Изменение Глобальных Настроек

    Если вы предпочитаете изменить глобальные настройки, отредактируйте файл /etc/pulse/default.pa:

    sudo nano /etc/pulse/default.pa

    Найдите секцию, загружающую модули Bluetooth, и закомментируйте ее:

    ### Automatically load driver modules for Bluetooth hardware (edited)
    #.ifexists module-bluetooth-policy.so
    #load-module module-bluetooth-policy
    #.endif
    
    #.ifexists module-bluetooth-discover.so
    #load-module module-bluetooth-discover
    #.endif

Заключение

Эти изменения позволят избежать ненужных ошибок в логах, если ваше устройство не имеет Bluetooth. Совершение данных изменений является безопасным для систем, не использующих Bluetooth, и не окажет отрицательного влияния на работу других функций PulseAudio. Удостоверьтесь, что сделали резервную копию всех конфигурационных файлов перед их редактированием.

Оцените материал
Добавить комментарий

Капча загружается...