blueman-manager, blueman-applet: Not loading conflicting plugin NMPANSupport (SOLVED)

archive view archive save

bluetooth-logo_1.png Не запускается blueman-manager и blueman-applet - blueman.main.PluginManager.LoadException: Not loading conflicting plugin NMPANSupport due to lower priority. Проблема с blueman-ом появилась после обновления до Debian 12 (bookworm), она относительно старая и её решения никто пока ещё не придумал - значит мы будем первые.

  1. Описание проблемы
  2. Расследование
  3. Решение 1 - disable NMPANSupport
  4. Решение 2 - flush dconf
  5. Ссылки по-теме

Описание проблемы

Выглядит проблема запуска blueman-manager и blueman-applet примерно так:

$ blueman-manager
Blueman applet needs to be running
 
$ blueman-applet
Traceback (most recent call last):
 File "/usr/bin/blueman-applet", line 40, in <module>
 app = BluemanApplet()
 ^^^^^^^^^^^^^^^
 File "/usr/lib/python3/dist-packages/blueman/main/Applet.py", line 44, in __init__
 self.Plugins.load_plugin()
 File "/usr/lib/python3/dist-packages/blueman/main/PluginManager.py", line 125, in load_plugin
 self.__load_plugin(cls)
 File "/usr/lib/python3/dist-packages/blueman/main/PluginManager.py", line 158, in __load_plugin
 raise LoadException(f"Not loading conflicting plugin {cls.__name__} due to lower priority")
blueman.main.PluginManager.LoadException: Not loading conflicting plugin NMPANSupport due to lower priority

На форумах Дебиан проблема с blueman-applet так и осталась нерешённой:

Blueman applet doesn't start - Debian User Forums
...
Re: Blueman applet doesn't start

#4 Post by titanicus » 2022-05-11 08:25
I've found out that blueman-* runs only under sudo command. That's: if I run
$ sudo blueman-applet
it starts fine; it doesn't start i I run (as root)
# blueman-applet
or (as simple user)
$ blueman-applet

On a different PC with the same configuration (permissions and script in ~/.config/autostart) I do not have any problem, blueman-applet works like a charm.
Any hints?

Что с проблемой делать не знают и разрабы blueman-a:

Расследование

Описанное выше недоразумение произошло после апгрэйда с Debian 10 (Booster) до Debian 12 (bookworm) в конце прошлого 2024-го года.

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

Но, как же неудобно, когда нет возможности пользоваться блюпупом...

Были подозрения на проблемы с правами доступа к библиотекам питона, когда у пользователя root в .bashrc вместо 022 (644 for files, 755 for dirs) стоял umask 027 (640 for files, 750 for dirs) в результате чего устанавливаемые пользователем root библиотеки (программы) могли быть недоступны другим пользователям.

Но, umask 027 для root был обратно поставлен на 022 ещё несколько лет тому назад, до обновления, а установка чмодов 644/755 на файлы/каталоги проблему не решила:

find /usr/lib/python3/ -type f -exec chmod 644 {} \;
find /usr/lib/python3/ -type d -exec chmod 755 {} \;

Не помогло и полное удаление с зачисткой конфигурационных файлов и последующей установкой/переустановкой:

sudo apt-get purge -y bluetooth bluez bluez-firmware bluez-hcidump bluez-cups bluez-tools pulseaudio-module-bluetooth
 
sudo apt-get install --reinstall -y bluetooth bluez bluez-firmware bluez-hcidump bluez-cups bluez-tools pulseaudio-module-bluetooth

Разрабы говорят, что то у нас какие-то проблемы via D-Bus, но при чём здесь D-Bus, когда в ошибке запуска ясно сказано Not loading conflicting plugin NMPANSupport - не загружен конфликтный модуль NMPANSupport. Да и если были бы проблемы с D-Bus, то они влияли бы на все сервисы и всю систему разом, а не только на запуск blueman-manager и/или blueman-applet!

Чтобы долго не томить, перейдём сразу к сути проблемы, что в итоге получилось -

  1. blueman-manager и blueman-applet удаётся запустить из консоли пользователя root, а при запуске от имени обычного пользователя получаем blueman.main.PluginManager.LoadException: Not loading conflicting plugin NMPANSupport due to lower priority;
  2. В Debian 12 отвалился (удалён) NetworkManager, точнее в процессе обновления отвалился пакет wicd (wicd was completely removed from Debian 11 and 12), а вместе с ним автоматически потянуло (снесло, удалило) и network-manager;
  3. Конфигурация blueman после обновления до Debian 12 осталась от Debian 10;
  4. В Debian 10 blueman и его модули очевидно было настроено на совместное использование NetworkManager, а NetworkManager-а с нами в Debian 12 уже нет;
  5. следовательно, возможны какие-то проблемы с конфигурацией blueman и его плагинов, которые из-за конфликтов не хотят загружаться Not loading conflicting plugin NMPANSupport;
  6. blueman конфигурация не хранится в традиционных файлах и простым удалением из ~/.config/ её не сбросить;
    blueman config file location - Unix & Linux Stack Exchange
    blueman doesn't use a config file, instead using dconf.

Как разрулить, читайте далее...

Решение 1 - disable NMPANSupport

Запустите от root:

strace -u yuzver -o /tmp/trace.txt blueman-applet

blueman-applet-strace-by-user.jpg

Где yuzver имя пользователя из аккаунта которого не запускается blueman-applet и/или blueman-manager

Из контекстного меню выберите Модули и отключите:

  • NMPANSupport - Обеспечивает поддержку Personal Area Networking (PAN), представленную в NetworkManager 0.8
    Конфликтует с: DhcpSupport

blueman-applet-nmpansupport-plugin.jpg

  • NMDUNSupport - Обеспечивает поддержку для Dial Up Networking (DUN) для ModemManager и NetworkManager
    Конфликтует с: PPPSupport

blueman-applet-nmdunsupport-plugin.jpg

Из контекстного меню теперь выберите Локальные службы и вместо NetworkManager установите:

  • Поддержка PAN: Blueman (dhclient)
  • Поддержка DUN: Blueman

blueman-applet-local-service-network.jpg

Решение 2 - flush dconf

Устанавливаем apt-get install dconf-editor, запускаем dconf-editor и пробуем Рекурсивный сброс dconf конфигурации blueman.

dconf-editor-org-blueman.jpg

sudo apt-get purge ... не помогло избавится от устаревших настроек по все вероятности потому, что в документации сказано только про удаление configuration files, а dconf It is basically a database ...

man apt-get|grep -A6 purge
...
  purge
    purge is identical to remove except that packages are removed and purged (any
    configuration files are deleted too).

Потому и получился такой страшный геморрой.


Об авторе
Иван Шаман
Меня нет ни в Инстаграмме ни в Фейсбуке, я просто хожу по улицам и рассказываю первым встречным: сколько зарабатываю; с кем дружу; где живу и чем дышу. У меня даже появилось несколько подписчиков: ПСИХоЛОХ и участковый полицай!
Ещё статьи автора
Комментарии в блоге
Новое на форуме