Вопрос или проблема
Я просматривал свои логи и нашел это в самом верху:
[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, чтобы избежать этой ошибки. Вот несколько шагов, которые вы можете предпринять:
-
Правка Локального Конфигурационного Файла
Создайте или откорректируйте файл
~/.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
-
Изменение Глобальных Настроек
Если вы предпочитаете изменить глобальные настройки, отредактируйте файл
/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. Удостоверьтесь, что сделали резервную копию всех конфигурационных файлов перед их редактированием.