web-dev-qa-db-fra.com

bluez5: Impossible de se connecter à un périphérique Bluetooth couplé sous Ubuntu 17.10

J'utilise bluez v5.46 sur Ubuntu 17.10 et je ne parviens pas à me connecter à un périphérique Bluetooth couplé.

Voici le résultat de la commande bluetoothctl:

$ bluetoothctl 
[NEW] Controller 6C:0B:84:27:43:66 tensorFlowPHY [default]
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 6C:0B:84:27:43:66 Discovering: yes
[NEW] Device FC:58:FA:A1:C2:70 OE-P51
[bluetooth]# trust FC:58:FA:A1:C2:70
[CHG] Device FC:58:FA:A1:C2:70 Trusted: yes
Changing FC:58:FA:A1:C2:70 trust succeeded
[bluetooth]# pair FC:58:FA:A1:C2:70 
Attempting to pair with FC:58:FA:A1:C2:70
[CHG] Device FC:58:FA:A1:C2:70 Connected: yes
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 ServicesResolved: yes
[CHG] Device FC:58:FA:A1:C2:70 Paired: yes
Pairing successful
[CHG] Device FC:58:FA:A1:C2:70 ServicesResolved: no
[CHG] Device FC:58:FA:A1:C2:70 Connected: no
[CHG] Controller 6C:0B:84:27:43:66 Discoverable: no
[bluetooth]# connect FC:58:FA:A1:C2:70 
Attempting to connect to FC:58:FA:A1:C2:70
Failed to connect: org.bluez.Error.Failed

Voici un peu plus d'informations:

$ journalctl -u bluetooth | tail
Mar 29 12:06:01 tensorFlowPHY systemd[1]: Started Bluetooth service.
Mar 29 12:06:01 tensorFlowPHY bluetoothd[1136]: Starting SDP server
Mar 29 12:06:01 tensorFlowPHY bluetoothd[1136]: Bluetooth management interface 1.14 initialized
Mar 29 14:36:12 tensorFlowPHY bluetoothd[1136]: a2dp-sink profile connect failed for FC:58:FA:A1:C2:70: Protocol not available
Mar 29 14:36:59 tensorFlowPHY bluetoothd[1136]: a2dp-sink profile connect failed for FC:58:FA:A1:C2:70: Protocol not available

Et systemctl dit:

$ systemctl status bluetooth
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-03-30 16:30:15 CEST; 21s ago
     Docs: man:bluetoothd(8)
 Main PID: 1492 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   Memory: 1.5M
      CPU: 42ms
   CGroup: /system.slice/bluetooth.service
           └─1492 /usr/lib/bluetooth/bluetoothd

Mar 30 16:30:15 tensorFlowPHY systemd[1]: Starting Bluetooth service...
Mar 30 16:30:15 tensorFlowPHY bluetoothd[1492]: Bluetooth daemon 5.46
Mar 30 16:30:15 tensorFlowPHY systemd[1]: Started Bluetooth service.
Mar 30 16:30:15 tensorFlowPHY bluetoothd[1492]: Starting SDP server
Mar 30 16:30:15 tensorFlowPHY bluetoothd[1492]: Bluetooth management interface 1.14 initialized
Mar 30 16:30:20 tensorFlowPHY bluetoothd[1492]: a2dp-sink profile connect failed for FC:58:FA:A1:C2:70: Protocol not available
Mar 30 16:30:31 tensorFlowPHY bluetoothd[1492]: a2dp-sink profile connect failed for FC:58:FA:A1:C2:70: Protocol not available

EDIT 1: J'ai installé un paquet Ubuntu qui manquait: pulseaudio-module-bluetooth et redémarré pulseaudio avec la commande: pulseaudio -k

Maintenant, la sortie du journal Bluetooth après l’essai de la connexion est:

Mar 30 16:36:59 tensorFlowPHY bluetoothd[1492]: Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107)
Mar 30 16:37:00 tensorFlowPHY bluetoothd[1492]: connect error: Connection refused (111)
Mar 30 16:37:02 tensorFlowPHY bluetoothd[1492]: connect error: Connection refused (111)

Une idée pourquoi?

EDIT 2: Je viens de redémarrer Ubuntu en tant que personne priée de le faire. J'ai toujours le même pb.

EDIT 3: Les deux modules sont déjà chargés dans /etc/Pulse/default.pa:

$ egrep "(policy|discover)" /etc/Pulse/default.pa
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover

Mais je ne trouve pas ceux sur le disque dur, dois-je installer autre chose?

EDIT 4: Mon erreur, j'ai utilisé la commande locate. Après un Sudo updatedb, la commande locate est maintenant capable de trouver ces 2 fichiers.

EDIT 5: Voici la sortie pactl:

$ pactl list modules | grep "Name:"
    Name: module-device-restore
    Name: module-stream-restore
    Name: module-card-restore
    Name: module-augment-properties
    Name: module-switch-on-port-available
    Name: module-udev-detect
    Name: module-alsa-card
    Name: module-alsa-card
    Name: module-bluetooth-policy
    Name: module-bluetooth-discover
    Name: module-bluez5-discover
    Name: module-native-protocol-unix
    Name: module-default-device-restore
    Name: module-rescue-streams
    Name: module-always-sink
    Name: module-intended-roles
    Name: module-suspend-on-idle
    Name: module-console-kit
    Name: module-systemd-login
    Name: module-position-event-sounds
    Name: module-role-cork
    Name: module-filter-heuristics
    Name: module-filter-apply
    Name: module-switch-on-connect
    Name: module-x11-publish
    Name: module-x11-cork-request
    Name: module-x11-xsmp

et la sortie dpkg -l:

$ dpkg -l | grep blue
ii  bluefish                                  2.2.9-1                                                    AMD64        advanced Gtk+ text editor for web and software development
ii  bluefish-data                             2.2.9-1                                                    all          advanced Gtk+ text editor (data)
ii  bluefish-plugins                          2.2.9-1                                                    AMD64        advanced Gtk+ text editor (plugins)
ii  blueman                                   2.0.4-1ubuntu3                                             AMD64        Graphical bluetooth manager
ii  bluez                                     5.46-0ubuntu3                                              AMD64        Bluetooth tools and daemons
ii  bluez-cups                                5.46-0ubuntu3                                              AMD64        Bluetooth printer driver for CUPS
ii  bluez-obexd                               5.46-0ubuntu3                                              AMD64        bluez obex daemon
ii  bluez-tools                               0.2.0~20140808-5build1                                     AMD64        Set of tools to manage Bluetooth devices for linux
ii  gnome-bluetooth                           3.26.1-1                                                   AMD64        GNOME Bluetooth tools
ii  indicator-bluetooth                       0.0.6+17.10.20170605-0ubuntu3                              AMD64        System bluetooth indicator.
ii  libbluetooth3:AMD64                       5.46-0ubuntu3                                              AMD64        Library to use the BlueZ Linux Bluetooth stack
ii  libgnome-bluetooth13:AMD64                3.26.1-1                                                   AMD64        GNOME Bluetooth tools - support library
ii  pulseaudio-module-bluetooth               1:10.0-2ubuntu3.1                                          AMD64        Bluetooth module for PulseAudio sound server

EDIT 6: Votre solution a fonctionné! Pour résumer :

$ bluetoothctl
[bluetooth]# power on
Changing power on succeeded
[CHG] Controller 6C:0B:84:27:43:66 Powered: yes
[bluetooth]# remove FC:58:FA:A1:C2:70
[DEL] Device FC:58:FA:A1:C2:70 OE-P51
Device has been removed
[bluetooth]# exit
Agent unregistered
[DEL] Controller 6C:0B:84:27:43:66 tensorFlowPHY [default]
$ Sudo service bluetooth restart

et enfin :

$ bluetoothctl
[NEW] Controller 6C:0B:84:27:43:66 tensorFlowPHY [default]
Agent registered
[bluetooth]# power on
Changing power on succeeded
[CHG] Controller 6C:0B:84:27:43:66 Powered: yes
[bluetooth]# scan on
Discovery started
[CHG] Controller 6C:0B:84:27:43:66 Discovering: yes
[NEW] Device FC:58:FA:A1:C2:70 OE-P51
[bluetooth]# trust FC:58:FA:A1:C2:70 
[CHG] Device FC:58:FA:A1:C2:70 Trusted: yes
Changing FC:58:FA:A1:C2:70 trust succeeded
[bluetooth]# pair FC:58:FA:A1:C2:70 
Attempting to pair with FC:58:FA:A1:C2:70
[CHG] Device FC:58:FA:A1:C2:70 Connected: yes
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 ServicesResolved: yes
[CHG] Device FC:58:FA:A1:C2:70 Paired: yes
Pairing successful
[CHG] Device FC:58:FA:A1:C2:70 ServicesResolved: no
[CHG] Device FC:58:FA:A1:C2:70 Connected: no
[bluetooth]# connect FC:58:FA:A1:C2:70 
Attempting to connect to FC:58:FA:A1:C2:70
[CHG] Device FC:58:FA:A1:C2:70 Connected: yes
Connection successful
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device FC:58:FA:A1:C2:70 ServicesResolved: yes
[OE-P51]#
6
SebMa

De Arch wiki , L'appariement fonctionne, mais la connexion ne fonctionne pas , section:

Cela peut être dû au fait que le paquet pulseaudio-bluetooth n’est pas installé. Installez-le s'il manque, puis redémarrez pulseaudio.

Mais le nom du paquet pulseaudio-bluetooth est pulseaudio-module-bluetooth sur Ubuntu.

Donc, votre problème devrait être résolu après l’avoir installé:

Sudo apt install pulseaudio-module-bluetooth

Et après avoir installé ce paquet , redémarrez votre système pour charger certains modules audio Pulse tels que module-bluetooth-policy et module-bluetooth-discover.

Mise à jour:

Mais si encore, vous obtenez le message ci-dessous après le redémarrage:

erreur de connexion: connexion refusée (111)

Selon this answer, vous devriez ajouter ces lignes au fichier /etc/Pulse/default.pa. (Si non existe):

load-module module-bluetooth-policy
load-module module-bluetooth-discover

Mais ces lignes doivent exister par défaut et après le redémarrage de votre système, ces modules doivent être chargés.

Update2:

Selon cet article sur Arch wiki:

Cela peut être dû au fait que vous avez déjà couplé le périphérique avec un autre système d'exploitation utilisant le même adaptateur Bluetooth (par exemple, le double démarrage). Certains appareils ne peuvent pas gérer plusieurs liaisons associées à la même adresse MAC (c'est-à-dire un adaptateur Bluetooth). Vous pouvez résoudre ce problème en rapprochant l'appareil.

Alors s'il vous plaît re-coupler votre appareil avec ces commandes (ou vous pouvez utiliser la méthode graphique):

Première exécution:

bluetoothctl

Utilisez ensuite ces commandes pour afficher les périphériques couplés:

devices

Et cela devrait avoir une sortie comme celle-ci:

Device XX:XX:XX:XX:XX:XX Device Name

Ensuite, supprimez les appareils jumelés avec cette commande:

remove XX:XX:XX:XX:XX:XX

Et redémarrez le service Bluetooth:

Sudo service bluetooth restart

Puis essayez à nouveau d'appairer l'appareil.

4
Ali Razmdideh