Mise à jour : Debian 11.1 Bullseye
Références
Sommaire
$ sudo dmesg |grep -i bluetooth
[ 139.195571] Bluetooth: Core ver 2.22
.......
$ ls -l /sys/class/bluetooth/hci0
lrwxrwxrwx 1 root root 0 26 oct. 19:22 /sys/class/bluetooth/hci0 -> ../../devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0/bluetooth/hci0
$ lsusb -t |grep "Port 10" |grep "If 1"
|__ Port 10: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
$ lsusb -s 1:4
Bus 001 Device 004: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
$ lsusb -s 1:4 -v
....
$ lsmod |grep btusb
btusb 65536 0
btrtl 24576 1 btusb
btbcm 20480 1 btusb
btintel 32768 1 btusb
bluetooth 737280 50 btrtl,hidp,btintel,btbcm,bnep,btusb,rfcomm
usbcore 323584 4 xhci_hcd,usbhid,btusb,xhci_pci
En cas de doute sur les interrupteurs rfkill
Installer rfkill
$ sudo aptitude install rfkill
Afficher l'état des interrupteurs
$ sudo rfkill list bluetooth
1: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
$ sudo rfkill unblock bluetooth
$ sudo systemctl status bluetooth
Sinon le démarrer
$ sudo systemctl start bluetooth
Le paquet bluetooth installe les différents greffons pris en charge par la pile bluez
$ sudo aptitude install bluetooth
$ sudo aptitude install bluez-cups
Il fournit également via bluez, les utilitaires hcitool et hciconfig
Adresse MAC de la (ou des) cartes bluetooth
$ hcitool dev
Devices:
hci0 38:xx:xx:xx:xx:4C
Caractéristiques de la (ou des) cartes bluetooth
$ hciconfig -a
hci0: Type: Primary Bus: USB
BD Address: 50:EB:71:93:21:22 ACL MTU: 1021:4 SCO MTU: 96:6
UP RUNNING PSCAN
RX bytes:66589 acl:284 sco:0 events:4881 errors:0
TX bytes:36416 acl:188 sco:0 commands:4459 errors:0
Features: 0xbf 0xfe 0x0f 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH SNIFF
Link mode: SLAVE ACCEPT
Name: 'debian'
Class: 0x3c0104
Service Classes: Rendering, Capturing, Object Transfer, Audio
Device Class: Computer, Desktop workstation
HCI Version: 5.1 (0xa) Revision: 0x100
LMP Version: 5.1 (0xa) Subversion: 0x100
Manufacturer: Intel Corp. (2)
Si à la place de UP RUNNING PSCAN, apparaît DOWN, réinitialiser la carte :
$ sudo hcinconfig hci0 up
Seuls les périphériques émetteurs seront détectés (il peut-être nécessaire de les mettre en mode appariement pour les détecter)
Détection des périphériques : adresse mac et classe
$ sudo hcitool inq
Inquiring ...
B0:xx:xx:xx:xx:90 clock offset: 0x70bf class: 0x5a020c
Scan des périphériques : adresse mac et nom
$ sudo hcitool scan
Scanning ...
38:8A:BE:00:7C:F8 OPPO A72
34:27:92:23:33:EA Freebox Player Mini v2 3977
20:73:03:78:43:4A Bluetooth Keyboard
EC:FA:5C:E9:38:B4 MIBOX4 nown
Installer le système de son pulseaudio et le plugin de mixer pour xfce4
$ sudo aptitude install pulseaudio pulseaudio-module-bluetooth pavucontrol xfce4-pulseaudio-plugin
Démarrer le système de commande interactif bluetoothctl et afficher les options avec help
$ bluetoothctl
Agent registered
[bluetooth]# help
Menu main:
Available commands:
-------------------
advertise Advertise Options Submenu
scan Scan Options Submenu
gatt Generic Attribute Submenu
list List available controllers
show [ctrl] Controller information
select <ctrl> Select default controller
devices List available devices
paired-devices List paired devices
system-alias <name> Set controller alias
reset-alias Reset controller alias
power <on/off> Set controller power
pairable <on/off> Set controller pairable mode
discoverable <on/off> Set controller discoverable mode
agent <on/off/capability> Enable/disable agent with given capability
default-agent Set agent as the default one
advertise <on/off/type> Enable/disable advertising with given type
set-alias <alias> Set device alias
scan <on/off> Scan for devices
info [dev] Device information
pair [dev] Pair with device
trust [dev] Trust device
untrust [dev] Untrust device
block [dev] Block device
unblock [dev] Unblock device
remove <dev> Remove device
connect <dev> Connect device
disconnect [dev] Disconnect device
menu <name> Select submenu
version Display version
quit Quit program
exit Quit program
help Display help about this program
export Print evironment variables
Sélectionner le contrôleur et l'activer
[bluetooth]# list
Controller 38:xx:xx:xx:xx:4C buster [default]
Si plusieurs contrôleurs sont disponibles, pour sélectionner un contrôleur par défaut :
[bluetooth]# select 38:xx:xx:xx:xx:4C
Pour afficher les propriétés du contrôleur par défaut
[bluetooth]# show
Controller 38:xx:xx:xx:xx:4C (public)
Name: buster
Alias: buster
Class: 0x001c0104
Powered: yes
Discoverable: yes
Pairable: yes
UUID: Headset AG (00001112-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: OBEX File Transfer (00001106-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: OBEX Object Push (00001105-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: IrMC Sync (00001104-0000-1000-8000-00805f9b34fb)
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific (00005005-0000-1000-8000-0002ee000001)
UUID: Message Notification Se.. (00001133-0000-1000-8000-00805f9b34fb)
UUID: Phonebook Access Server (0000112f-0000-1000-8000-00805f9b34fb)
UUID: Message Access Server (00001132-0000-1000-8000-00805f9b34fb)
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d0532
Discovering: no
Si la ligne Powered: no s'affiche, mettre l'interface sous tension avec :
[bluetooth]# power on
# power on
Changing power on succeeded
Définir l'agent
Lister les agents possibles (double tab après la commande)
# agent [tab][tab]
DisplayOnly KeyboardDisplay NoInputNoOutput on
DisplayYesNo KeyboardOnly off on
Définir l'utilisation d'un agent
[bluetooth]# agent on
Agent is already registered
Utiliser l'agent par défaut
[bluetooth]# default-agent
Default agent request successful
Afficher les périphériques bluetooth mémorisés
[bluetooth]# devices
Device C0:xx:xx:xx:46 WONDERBOOM
Si le périphérique recherché n'apparaît pas, lancer un scan (passer le périphérique en mode appariement)
[bluetooth]# scan on
Discovery started
[CHG] Controller 38:BA:F8:32:71:4C Discovering: yes
[NEW] Device 96:xx:xx:xx:xx:5E ENVY Photo 6200 series
[NEW] Device F8:xx:xx:xx:xx:2B [TV] Samsung 6 Series (55)
Lorsque le périphérique apparaît, stopper le scan
[bluetooth]# scan off
Vérifier les caractéristiques du périphérique
[bluetooth]# info 96:xx:xx:xx:xx:5E
Device 96:xx:xx:xx:xx:5E (public)
Name: ENVY Photo 6200 series
Alias: ENVY Photo 6200 series
Paired: no
Trusted: no
Blocked: no
Connected: no
LegacyPairing: no
UUID: Hewlett-Packard Company (0000fe78-0000-1000-8000-00805f9b34fb)
ManufacturerData Key: 0x0065
ManufacturerData Value: 01 c9 05
Appairer le périphérique
Vérifier que le contrôleur est en mode appairable, sinon
[bluetooth]# pairable on
Rendre le contrôleur visible
[bluetooth]# discoverable on
Définir le périphérique comme "sur" (nécessaire dans le cas d'un périphérique sans mot de passe)
[bluetooth]# trust C0:xx:xx:xx:xx:46
Changing C0:xx:xx:xx:xx:46 trust succeeded
[bluetooth]# pair C0:xx:xx:xx:xx:46
Attempting to pair with C0:xx:xx:xx:xx:46
..........
Rendre le contrôleur invisible
[bluetooth]# discoverable off
Vérification de l'appairage
[bluetooth]# paired-devices
Device C0:xx:xx:xx:xx:46 WONDERBOOM
Connecter le périphérique
[bluetooth]# connect C0:xx:xx:xx:xx:46
Attempting to connect to C0:xx:xx:xx:xx:46
[CHG] Device C0:xx:xx:xx:xx:46 Connected: yes
Connection successful
[CHG] Device C0:xx:xx:xx:xx:46 ServicesResolved: yes
Dans Pavucontrol, onglet Périphériques de sortie, le périphérique connecté, ici WONDERBOOM apparaît.
Installer une interface graphique pour la gestion du bluetooth, blueman dans le cas du bureau xfce4
$ sudo aptitude install blueman
Vérification de l'appairage (appairage sur le périphérique WONDERBOOM
$ sudo bluetoothctl
Agent registred
[WONDERBOOM]#
Sur le mixer, onglet Périphériques de sortie, le périphérique appairé (ici WONDERBOOM) apparaît
Onglet Configuration, sélectionner le Profil (A2DP Sink)
Démarrer un flux audio, par exemple la démo speaker de alsa
$ speaker-test -t wav -c 6
Onglet Entrée, sélectionner le périphérique (ici WONDERBOOM)