Вопрос или проблема
Запуск Ubuntu Server v18 на Raspberry Pi Model 3
Попытка запустить службу Bluez из systemd завершилась неудачей из-за:
Настройка D-Bus не удалась: Соединение “1.37” не имеет права управлять службой org.bluez из-за политики безопасности в конфигурационном файле.
Логи были проверены на наличие отказов AppArmor, ничего не было найдено.
На какую политику безопасности и конфигурационный файл ссылается сообщение?
Для меня (Bluez: 5.50) все, что мне нужно было сделать, это отредактировать /etc/bluetooth/main.conf
и добавить ControllerMode=le
.
Затем перезагрузите.
.
Ответ или решение
Проблема: Невозможно запустить BlueZ – Ошибка настройки D-Bus
Введение
При попытке запустить сервис BlueZ на Ubuntu Server версии 18 на Raspberry Pi Model 3 у вас возникла ошибка, указывающая на невозможность подключения к сервису через D-Bus из-за проблем с политиками безопасности. В данном ответе мы детально рассмотрим причины возникновения этой ошибки и шаги, которые можно предпринять для ее устранения.
Проблема: D-Bus и Политики Безопасности
Ошибка, которую вы получаете:
D-Bus setup failed: Connection "1.37" is not allowed to own the service org.bluez due to security policies in the configuration file.
Эта ошибка указывает на то, что ваш процесс не имеет достаточных прав для управления сервисом BlueZ через D-Bus. Как правило, данная проблема возникает из-за неправильно настроенных политик безопасности.
Основные моменты, на которые стоит обратить внимание:
-
Файл конфигурации D-Bus: Политики безопасности для D-Bus хранятся в конфигурационных файлах, расположенных в
/etc/dbus-1/system.conf
или в директории/etc/dbus-1/system.d/
. В этих файлах содержатся записи, которые определяют, какие компоненты имеют права на доступ к определенным сервисам. -
Права доступа: Проверить, какой пользователь и группа запускают сервис BlueZ. Обычно от имени системного пользователя, но для некоторых конфигураций может потребоваться явное указание прав в конфигурационных файлах.
Шаги для устранения проблемы
-
Редактирование конфигурации D-Bus:
- Откройте
system.conf
, используя текстовый редактор (например, nano или vim):sudo nano /etc/dbus-1/system.conf
- Убедитесь, что в секции
<policy domain="libbluez">
или аналогичной есть правильные разрешения для вашего пользователя или группы. Группа, которой принадлежит BlueZ, может быть указана в конфигурации.
- Откройте
-
Проверка AppArmor:
- Вы уже проверили логи на наличие запрещенных действий от AppArmor. Однако стоит убедиться, что профили AppArmor правильно настроены и не блокируют доступ к D-Bus для BlueZ. Для этого просто убедитесь, что профиль
bluez
не конфликтует.
- Вы уже проверили логи на наличие запрещенных действий от AppArmor. Однако стоит убедиться, что профили AppArmor правильно настроены и не блокируют доступ к D-Bus для BlueZ. Для этого просто убедитесь, что профиль
-
Конфигурация BlueZ:
- В некоторых случаях, чтобы разрешить данный доступ, вам может потребоваться изменить настройки BlueZ. Если ваша версия BlueZ (5.50) требует добавления следующих строк:
[General] ControllerMode=le
- Откройте файл конфигурации BlueZ:
sudo nano /etc/bluetooth/main.conf
- Добавьте упомянутое выше и сохраните изменения.
- В некоторых случаях, чтобы разрешить данный доступ, вам может потребоваться изменить настройки BlueZ. Если ваша версия BlueZ (5.50) требует добавления следующих строк:
-
Перезагрузка системы:
- После всех изменений необходимо перезагрузить Raspberry Pi для применения новых настроек:
sudo reboot
- После всех изменений необходимо перезагрузить Raspberry Pi для применения новых настроек:
Заключение
При возникновении ошибки запуску BlueZ на Ubuntu Server, связанной с D-Bus, необходимо проверить конфигурации политик безопасности, а также настройки самой системы. В большинстве случаев, корректировка этих настроек позволяет успешно запустить необходимый сервис. Если проблемы сохраняются, стоит также рассмотреть возможность обращения к более подробной информации в документации по D-Bus и BlueZ в зависимости от вашей специфики работы с Bluetooth.