Problème Bluetooth sur PC Ubuntu

je déterre un vieu topic:
J’ai le meme message d’erreur sur mon installation quand je veux utiliser le Bluetooth.
Sur mon RPI c’etait OK mais je suis passé sur PC + UBUNTU et ça ne fonctionne plus.
Sur Ubuntu mon dongle est OK puisque je peux appairer un appareil via Bluetooth.
J’ai redémarré a plusieurs reprise & aussi fait le redémarrage du docker.
Des idées ?
Merci

Sur ton PC Ubuntu, si tu fais:

sudo systemctl status bluetooth

Tu as quoi ?

Si ça marche, si tu fais:

hcitool dev

Tu vois tes appareils Bluetooth ?

Dans les statuts j’ai « running » et « enable »
Ensuite la commande hcitool dev me remonte éléments : un hci0 et un hci2 avec leur adresses respectives

Et si tu rentre dans le container:

docker exec -it gladys sh

Et que tu fais:

hcitool dev

?

Je me demande si il ne manque pas un volume au container Docker…

En cherchant sur internet, j’ai l’impression qu’il faut DBus:

-v /var/run/dbus:/var/run/dbus \

image

Sinon pour Dbus c’est là que je me rend compte que mes connaissances Unix sont tres limitées… Je ne connais pas du tout DBUS et j’ai commencé a lire… j’ai pas tout compris ^^

cette fois-ci j’ai demandé un peu d’aide a ChatGPT et j’ai compris un peu plus.
j’ai donc effectué la suite de commande puis j’ai redémarré mais rien n’y fait, j’ai toujours mon message d’erreur…

De ce que tu me montres en screenshot, ça a l’air d’être bon donc pas besoin de fouiller sur DBus.

Bizarre que ça ne marche pas dans gladys si tu arrives à lister les appareils Bluetooth depuis le container !

Tu as une erreur dans les logs Gladys quand tu scannes ?

Bonjour,
Ce sujet est identique je pense :
https://community.gladysassistant.com/t/pas-de-bluetooth-sur-minipc-beelink-s12/9217

Nous sommes 2 autres à avoir le problème.
Mini PC Lenovo ThinkCentre M93p
sudo systemctl status bluetooth

● bluetooth.service - Bluetooth service
     Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-12-01 16:33:03 CET; 3 days ago
       Docs: man:bluetoothd(8)
   Main PID: 667 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 9306)
     Memory: 1.9M
        CPU: 81ms
     CGroup: /system.slice/bluetooth.service
             └─667 /usr/lib/bluetooth/bluetoothd

déc. 03 17:42:38 lenovo bluetoothd[667]: Endpoint unregistered: sender=:1.184 path=/MediaEndpoint/A2DPSink/sbc_xq_552
déc. 03 17:42:38 lenovo bluetoothd[667]: Endpoint unregistered: sender=:1.184 path=/MediaEndpoint/A2DPSource/sbc_xq_552
déc. 04 10:49:33 lenovo bluetoothd[667]: Endpoint registered: sender=:1.237 path=/MediaEndpoint/A2DPSink/sbc
déc. 04 10:49:33 lenovo bluetoothd[667]: Endpoint registered: sender=:1.237 path=/MediaEndpoint/A2DPSource/sbc
déc. 04 10:49:33 lenovo bluetoothd[667]: Endpoint registered: sender=:1.237 path=/MediaEndpoint/A2DPSink/sbc_xq_453
déc. 04 10:49:33 lenovo bluetoothd[667]: Endpoint registered: sender=:1.237 path=/MediaEndpoint/A2DPSource/sbc_xq_453
déc. 04 10:49:33 lenovo bluetoothd[667]: Endpoint registered: sender=:1.237 path=/MediaEndpoint/A2DPSink/sbc_xq_512
déc. 04 10:49:33 lenovo bluetoothd[667]: Endpoint registered: sender=:1.237 path=/MediaEndpoint/A2DPSource/sbc_xq_512
déc. 04 10:49:33 lenovo bluetoothd[667]: Endpoint registered: sender=:1.237 path=/MediaEndpoint/A2DPSink/sbc_xq_552
déc. 04 10:49:33 lenovo bluetoothd[667]: Endpoint registered: sender=:1.237 path=/MediaEndpoint/A2DPSource/sbc_xq_552
hcitool dev
Devices:
        hci0    80:00:0B:CE:2F:B0

donne la même réponse

Je me demande si il ne manque pas des dépendances dans le container Gladys

Quand je regarde la page de la dépendance qu’on utilise (@abandonware/noble - npm)

Je vois qu’il faut ces dépendances:

apt-get install bluetooth bluez libbluetooth-dev libudev-dev

Hors dans le Dockerfile de Gladys, je ne vois que bluez :

Je me demande si c’est suffisant ou pas.

Est-ce que quelqu’un pourrait rentrer dans son container Gladys, et tester d’installer un par un ces dépendances, et voir si ça fonctionne ensuite dans Gladys ?

Pour rentrer dans le container:

docker exec -it gladys sh

Ensuite, tester d’installer bluetooth:

apt-get install bluetooth 

Puis re-tester dans Gladys

Puis si ça ne marche pas, tester d’installer :

apt-get install libbluetooth-dev

Puis re-tester dans Gladys.

Puis si ça ne marche pas, tester d’installer :

apt-get install libudev-dev

Merci d’avance !! :slight_smile:

Si c’est ça, je rajouterais les dépendances au container

apt-get install bluetooth 

Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
E: Unable to locate package bluetooth

apt-get install libbluetooth-dev
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
E: Unable to locate package libbluetooth-dev

apt-get install libudev-dev
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
E: Unable to locate package libudev-dev

Ce que je ne comprends pas, c’est que ça a fonctionné puisque j’ai 2 porte clé nut dans mes appareils.
Je les avais intégrés il y a longtemps.
Je ne m’en servais pas, scènes désactivées, car la détection de présence ne me satisfaisait pas.

En me connectant en direct avec un écran sur le mini-pc, je vois bien des appareils bluetooth dans Ubuntu: smartphone, clé TV

Il m’indique que des MAJ pour Docker sont dispos
Docker Buildx cli plugin
Docker CLI
Docker Compose (V2) plugin for the Docker CLI
Rootless support for Docker

  • quelques autres MAJ propres à Ubuntu

Avant de faire les installations,

Fais un :

apt-get update

Puis refais le protocole un par un :slight_smile:

liste des paquets récupérée, mais même réponse
apt-get install bluetooth

En fait, j’étais sorti du conteneur Gladys.
En y retournant :
apt-get update

Reading package lists… Done

Puis
apt-get install bluetooth
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
Suggested packages:
bluez-cups bluez-obexd bluez-meshd
The following NEW packages will be installed:
bluetooth
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.9 kB of archives.
After this operation, 69.6 kB of additional disk space will be used.
Get:1 Index of /debian bookworm/main amd64 bluetooth all 5.66-1+deb12u2 [38.9 kB]
Fetched 38.9 kB in 0s (1102 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package bluetooth.
(Reading database … 10770 files and directories currently installed.)
Preparing to unpack …/bluetooth_5.66-1+deb12u2_all.deb …
Unpacking bluetooth (5.66-1+deb12u2) …
Setting up bluetooth (5.66-1+deb12u2) …

Rien ne change pour le moment dans Gladys
Faut-il redémarrer le conteneur Gladys pour que les modifs prennent effet ?

Je pense que oui !

docker restart gladys

Merci Gaetan pour ton aide :wink:
Pour ma part:
update + apt-get install bluetooth + apt-get install libbluetooth-dev + apt-get install libudev-dev + redémarrage du docker… Rien n’a changé… :confused:

Je confirme que j’ai les memes retour hors du docker et dans le docker en tapant hcitool dev

Je viens de refaire toutes les étapes et le résultat est le même :
Le module Bluetooth n’est pas disponible, merci de vérifier qu’il est bien activé.

Moi aussi, meme constat, au meme point.

Merci pour vos tests !

Je suis en journée Gladys demain, j’investiguerais sur le sujet :slight_smile:

1 Like

Salut à tous !

J’ai investigué sur le sujet, et je n’apporte malheureusement pas de bonnes nouvelles ^^

Depuis plusieurs années, Gladys utilise la librairie « Noble », une librairie qui permet d’utiliser le Bluetooth depuis Node.js

Cette librairie a progressivement été abandonnée par les mainteneurs originels (le dernier commit date d’il y a 6 ans) mais a été repris par un collectif, « abandonware ».

Nous utilisons la version « abandonware », qui est toujours maintenue, mais de manière légère par quelques membres.

En cherchant dans les issues de cette librairie, on se rend vite compte que depuis une certaine version du Kernel Linux, la librairie ne fonctionne plus.

Il y a de nombreux posts sur le sujet, quelques exemples :

Pour les voir tous, ça se passe ici : Issues · abandonware/noble · GitHub

Je vois qu’il y a eu des soucis sur d’autres librairies suite à des changements de Kernel sur Linux :

Qu’est-ce qu’on fait ?

Le bug a l’air relativement récent (relativement à l’activité du projet noble), je pense que pour l’instant on peut voir si abandonware publie un correctif pour les versions récentes de Linux.

Si cette librairie est véritablement abandonné dans les prochains mois, il faudra trouver une alternative, mais j’ai cherché rapidement et il n’y a vraiment aucune autre librairie, c’est compliqué :sweat_smile:

Quel est votre usage ?

Pour ceux qui voulaient utiliser le Bluetooth dans ce post, que vouliez-vous faire ?

Je peux vous orienter vers des solutions alternatives !

Franchement, la détection de présence via Bluetooth est une méthode que je déconseille de plus en plus.

Autrefois, la majorité des appareils Bluetooth étaient “basiques” : ils diffusaient constamment leur adresse MAC, ce qui les rendait très simples à détecter et à suivre.

Mais aujourd’hui, les appareils modernes comme les smartphones ou les montres connectées intègrent des mécanismes avancés pour éviter le tracking (par souci de confidentialité) et optimiser la consommation de batterie.

Résultat : les scans Bluetooth sur ces dispositifs sont devenus largement inefficaces.

Merci @pierre-gilles pour toutes ces recherches.
Ce que je ne comprends pas c’est que le Bluetooth fonctionne sur le mini-pc (des appareils sont vus), mais pas dans Gladys. Certainement le fait que ceux sont deux librairies différentes, une pour chaque « appareil ».
Perso, je n’ai pas l’utilité du Bluetooth. J’ai des porte clés nut dont je ne me sers pas. La détection de présence n’est pas top avec je trouve.