Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Prochaine révision Les deux révisions suivantes | ||
bluetooth [Le 04/11/2017, 12:50] 176.180.137.2 [En ligne de commande (universel) avec Bluez4] |
bluetooth [Le 05/11/2017, 13:01] L'Africain |
||
---|---|---|---|
Ligne 108: | Ligne 108: | ||
Testé sur Samsung Galaxy Ace (Rom cyanogenmod 7), et Kubuntu 12.10, Samsung S5. Ubuntu 16.04 LTS. | Testé sur Samsung Galaxy Ace (Rom cyanogenmod 7), et Kubuntu 12.10, Samsung S5. Ubuntu 16.04 LTS. | ||
==== Connecter la wiimote ==== | ==== Connecter la wiimote ==== | ||
- | <code> | + | <code bash> |
~$ sudo modprobe hid-wiimote | ~$ sudo modprobe hid-wiimote | ||
~$ sudo modprobe uinput | ~$ sudo modprobe uinput | ||
</code> | </code> | ||
- | <code>~$ bluetoothctl</code> | + | <code bash>bluetoothctl</code> |
- | <code> | + | <code bash> |
[bluetooth]# scan on | [bluetooth]# scan on | ||
[NEW] Device XX:XX:XX:XX:XX:XX Nintendo RVL-CNT-01-TR | [NEW] Device XX:XX:XX:XX:XX:XX Nintendo RVL-CNT-01-TR | ||
</code> | </code> | ||
Appuie sur le bouton 1 et 2 simultanément | Appuie sur le bouton 1 et 2 simultanément | ||
- | <code> | + | <code bash> |
[bluetooth]# connect XX:XX:XX:XX:XX:XX | [bluetooth]# connect XX:XX:XX:XX:XX:XX | ||
[CHG] Device XX:XX:XX:XX:XX:XX Connected: yes | [CHG] Device XX:XX:XX:XX:XX:XX Connected: yes | ||
Ligne 139: | Ligne 139: | ||
== Connaître les informations du périphérique == | == Connaître les informations du périphérique == | ||
rfkill permet de connaître les infos sur son périphérique: | rfkill permet de connaître les infos sur son périphérique: | ||
- | <code>usr@compuetr:~$ rfkill list | + | <code bash>rfkill list |
1: phy0: Wireless LAN | 1: phy0: Wireless LAN | ||
Soft blocked: yes | Soft blocked: yes | ||
Ligne 150: | Ligne 150: | ||
== Afficher les informations de configuration == | == Afficher les informations de configuration == | ||
La liste des périphériques peut aussi être connue grâce à hcitools. L'option dev permet d'afficher la liste, les informations de configuration sont affichées par hcitools: | La liste des périphériques peut aussi être connue grâce à hcitools. L'option dev permet d'afficher la liste, les informations de configuration sont affichées par hcitools: | ||
- | <code>usr@computer:~$ hcitool dev | + | <code bash>hcitool dev |
Devices: | Devices: | ||
hci0 AA:BB:C1:D2:E3:F4:00 | hci0 AA:BB:C1:D2:E3:F4:00 | ||
- | usr@computer:~$ hciconfig -a | + | hciconfig -a |
hci0: Type: BR/EDR Bus: USB | hci0: Type: BR/EDR Bus: USB | ||
BD Address: AA:BB:C1:D2:E3:F4:00 ACL MTU: 2011:4 SCO MTU: 82:4 | BD Address: AA:BB:C1:D2:E3:F4:00 ACL MTU: 2011:4 SCO MTU: 82:4 | ||
Ligne 176: | Ligne 176: | ||
== Connaître les services disponibles == | == Connaître les services disponibles == | ||
Les commandes inq et scan de hcitool, ainsi que sdptool et bluetoothctl du paquet Bluez-utils permettent de repérer les informations utiles pour effectuer les actions désirées en ligne de commande. | Les commandes inq et scan de hcitool, ainsi que sdptool et bluetoothctl du paquet Bluez-utils permettent de repérer les informations utiles pour effectuer les actions désirées en ligne de commande. | ||
- | <code> | + | <code bash> |
- | usr@computer:~$ hcitool inq | + | hcitool inq |
Inquiring ... | Inquiring ... | ||
AA:B1:C2:D3:E4:F5 clock offset: 0x5c36 class: 0x7a020c | AA:B1:C2:D3:E4:F5 clock offset: 0x5c36 class: 0x7a020c | ||
Ligne 183: | Ligne 183: | ||
56:B1:AE:45:E4:4B clock offset: 0x7508 class: 0x5a020c | 56:B1:AE:45:E4:4B clock offset: 0x7508 class: 0x5a020c | ||
78:1B:00:45:E4:25 clock offset: 0x2d55 class: 0x08043c | 78:1B:00:45:E4:25 clock offset: 0x2d55 class: 0x08043c | ||
- | usr@computer:~$ bluetoothctl | + | bluetoothctl |
[NEW] Controller AA:B1:C2:D3:E4:F5 Computer [default] | [NEW] Controller AA:B1:C2:D3:E4:F5 Computer [default] | ||
[NEW] Device 01:B1:C2:45:E4:F5 Téléphone de Caroline | [NEW] Device 01:B1:C2:45:E4:F5 Téléphone de Caroline | ||
Ligne 191: | Ligne 191: | ||
[bluetooth]# exit | [bluetooth]# exit | ||
[DEL] Controller AA:B1:C2:D3:E4:F5 Computer [default] | [DEL] Controller AA:B1:C2:D3:E4:F5 Computer [default] | ||
- | usr@computer:~$ hcitool scan | + | hcitool scan |
Scanning ... | Scanning ... | ||
14:0C:76:39:20:2B n/a | 14:0C:76:39:20:2B n/a | ||
Ligne 294: | Ligne 294: | ||
Version: 0x0105 | Version: 0x0105 | ||
- | usr@computer:~$ sdptool browse 56:B1:AE:45:E4:4B | + | sdptool browse 56:B1:AE:45:E4:4B |
Browsing 56:B1:AE:45:E4:4B ... | Browsing 56:B1:AE:45:E4:4B ... | ||
Service Name: Service Discovery | Service Name: Service Discovery | ||
Ligne 392: | Ligne 392: | ||
== Bluetoothctl, commande interactive pour l'appairage et le désappairage == | == Bluetoothctl, commande interactive pour l'appairage et le désappairage == | ||
"help" permet de lister les opérations disponibles: | "help" permet de lister les opérations disponibles: | ||
- | <code> | + | <code bash> |
- | usr@computer:~$ bluetoothctl | + | bluetoothctl |
[NEW] Controller AA:B1:C2:D3:E4:F5 Computer [default] | [NEW] Controller AA:B1:C2:D3:E4:F5 Computer [default] | ||
[NEW] Device 01:B1:C2:45:E4:F5 Téléphone de Caroline | [NEW] Device 01:B1:C2:45:E4:F5 Téléphone de Caroline | ||
Ligne 443: | Ligne 443: | ||
== Activer les périphériques bluetooth == | == Activer les périphériques bluetooth == | ||
- | <code>sudo rfkill unblock bluetooth && rfkill list bluetooth</code> | + | <code bash>sudo rfkill unblock bluetooth && rfkill list bluetooth</code> |
== Désactiver tous les périphériques == | == Désactiver tous les périphériques == | ||
- | <code>sudo rfkill block all && rfkill list bluetooth</code> | + | <code bash>sudo rfkill block all && rfkill list bluetooth</code> |
== Activer le périphérique avec hciconfig == | == Activer le périphérique avec hciconfig == | ||
- | <code>hciconfig hci0 up</code> | + | <code bash>hciconfig hci0 up</code> |
== Lister le(s) contrôleur(s) Bluetooth == | == Lister le(s) contrôleur(s) Bluetooth == | ||
- | <code>hcitool dev</code> | + | <code bash>hcitool dev</code> |
== Vérifier que le contrôleur Bluetooth du PC/Portable est bien présent et UP == | == Vérifier que le contrôleur Bluetooth du PC/Portable est bien présent et UP == | ||
- | <code>hciconfig</code> | + | <code bash>hciconfig</code> |
== Lister les périphériques Bluetooth == | == Lister les périphériques Bluetooth == | ||
- | <code> | + | <code bash> |
hcitool scan | hcitool scan | ||
</code> | </code> | ||
== Lister les capacités d'un périphérique Bluetooth == | == Lister les capacités d'un périphérique Bluetooth == | ||
- | <code> | + | <code bash> |
sudo hcitool info <AdresseMacPériphérique> | sudo hcitool info <AdresseMacPériphérique> | ||
</code> | </code> | ||
Ligne 469: | Ligne 469: | ||
== Appairer et connecter un clavier avec Bluez-utils == | == Appairer et connecter un clavier avec Bluez-utils == | ||
* Repérage du périphérique: | * Repérage du périphérique: | ||
- | <code> | + | <code bash> |
- | usr@computer:~$ hcitool scan | + | hcitool scan |
Scanning ... | Scanning ... | ||
0F:E1:2D:C3:4B:A5 Bluetooth Keyboard | 0F:E1:2D:C3:4B:A5 Bluetooth Keyboard | ||
</code> | </code> | ||
* ou bien si le périphérique bluetooth n'est pas visible: | * ou bien si le périphérique bluetooth n'est pas visible: | ||
- | <code> | + | <code bash> |
- | usr@computer:~$ sudo hciconfig hci0 piscan | + | sudo hciconfig hci0 piscan |
</code> | </code> | ||
* Appairage: | * Appairage: | ||
- | <code> | + | <code bash> |
- | usr@computer:~$ sudo bluez-simple-agent hci0 0F:E1:2D:C3:4B:A5 | + | sudo bluez-simple-agent hci0 0F:E1:2D:C3:4B:A5 |
</code> | </code> | ||
* Renseigner le code pin d'identification que l'on souhaite utiliser (par exemple 1234 ou 0000) : | * Renseigner le code pin d'identification que l'on souhaite utiliser (par exemple 1234 ou 0000) : | ||
- | <code> | + | <code bash> |
- | usr@computer:~$ RequestPinCode (/org/bluez/14688/hci0/dev_0F_E1_2D_C3_4B_A5) | + | RequestPinCode (/org/bluez/14688/hci0/dev_0F_E1_2D_C3_4B_A5) |
Enter PIN Code: | Enter PIN Code: | ||
Release | Release | ||
Ligne 490: | Ligne 490: | ||
</code> | </code> | ||
* Autoriser l'ordinateur à se connecter au périphérique désormais sans autorisation: | * Autoriser l'ordinateur à se connecter au périphérique désormais sans autorisation: | ||
- | <code> | + | <code bash> |
- | usr@computer:~$ sudo bluez-test-device trusted 0F:E1:2D:C3:4B:A5 yes | + | sudo bluez-test-device trusted 0F:E1:2D:C3:4B:A5 yes |
</code> | </code> | ||
* Connexion du périphérique identifié comme périphérique d'entrée (il s'agit dans cet exemple d'un clavier) : | * Connexion du périphérique identifié comme périphérique d'entrée (il s'agit dans cet exemple d'un clavier) : | ||
- | <code> | + | <code bash> |
- | usr@computer:~$ sudo bluez-test-input connect 0F:E1:2D:C3:4B:A5 | + | sudo bluez-test-input connect 0F:E1:2D:C3:4B:A5 |
</code> | </code> | ||
Ligne 502: | Ligne 502: | ||
* Commencer par déclarer un agent: | * Commencer par déclarer un agent: | ||
- | <code> | + | <code bash> |
[bluetooth]# agent on | [bluetooth]# agent on | ||
Agent registered | Agent registered | ||
</code> | </code> | ||
* Ensuite placer le contrôleur sous tension: | * Ensuite placer le contrôleur sous tension: | ||
- | <code> | + | <code bash> |
[bluetooth]# power on | [bluetooth]# power on | ||
Changing power on succeeded | Changing power on succeeded | ||
</code> | </code> | ||
* Recherche des appareils à proximité: | * Recherche des appareils à proximité: | ||
- | <code> | + | <code bash> |
[bluetooth]# scan on | [bluetooth]# scan on | ||
Discovery started | Discovery started | ||
Ligne 520: | Ligne 520: | ||
</code> | </code> | ||
* Appairer et connecter: | * Appairer et connecter: | ||
- | <code> | + | <code bash> |
[bluetooth]# pair 00:AA:22:BB:33:CC | [bluetooth]# pair 00:AA:22:BB:33:CC | ||
Attempting to pair with 00:AA:22:BB:33:CC | Attempting to pair with 00:AA:22:BB:33:CC | ||
Ligne 538: | Ligne 538: | ||
== Envoi d'un fichier depuis l'ordinateur == | == Envoi d'un fichier depuis l'ordinateur == | ||
* Avec gnome-obex-send: | * Avec gnome-obex-send: | ||
- | <code>gnome-obex-send -d <AdresseMacpériphérique> <fichier></code> | + | <code bash>gnome-obex-send -d <AdresseMacpériphérique> <fichier></code> |
- | <note important>Attention, cette ligne de commande a été récemment remplacée par <code>bluetooth-sendto --device=<AdresseMacpériphérique> <fichier></code> disponible dans le paquet [[apt>bluez-gnome]].</note> | + | <note important>Attention, cette ligne de commande a été récemment remplacée par <code bash>bluetooth-sendto --device=<AdresseMacpériphérique> <fichier></code> disponible dans le paquet [[apt>bluez-gnome]].</note> |
* Openobex et obexftp permettent également l'envoi de fichiers. | * Openobex et obexftp permettent également l'envoi de fichiers. | ||
- | <code> obex_test -b xx:xx:xx:xx:xx:xx 5 | + | <code bash> obex_test -b xx:xx:xx:xx:xx:xx 5 |
Using Bluetooth RFCOMM transport | Using Bluetooth RFCOMM transport | ||
OBEX Interactive test client/server. | OBEX Interactive test client/server. | ||
Ligne 563: | Ligne 563: | ||
* Avec le paquet obexftp: | * Avec le paquet obexftp: | ||
- | <code> | + | <code bash> |
obexftp -b AA:BB:00:11:CC:22 -p fichier.jpg | obexftp -b AA:BB:00:11:CC:22 -p fichier.jpg | ||
Browsing AA:BB:00:11:CC:22 ... | Browsing AA:BB:00:11:CC:22 ... | ||
Ligne 575: | Ligne 575: | ||
Après avoir [[:tutoriel:comment_installer_un_paquet|installé les paquets]] **[[apt>obexftp]]** et **[[apt>openobex]]** : | Après avoir [[:tutoriel:comment_installer_un_paquet|installé les paquets]] **[[apt>obexftp]]** et **[[apt>openobex]]** : | ||
===Lister les fichiers sur le téléphone=== | ===Lister les fichiers sur le téléphone=== | ||
- | <code> | + | <code bash> |
obexftp -b -l / | obexftp -b -l / | ||
obexftp -b -l /Photos # lister les fichiers du répertoire /Photos du téléphone | obexftp -b -l /Photos # lister les fichiers du répertoire /Photos du téléphone | ||
Ligne 582: | Ligne 582: | ||
===Télécharger un fichier du téléphone vers l'ordinateur=== | ===Télécharger un fichier du téléphone vers l'ordinateur=== | ||
- | <code> | + | <code bash> |
obexftp -b -c /Photos -g file.jpg # télécharger file.jpg qui se trouve dans le répertoire /Photos | obexftp -b -c /Photos -g file.jpg # télécharger file.jpg qui se trouve dans le répertoire /Photos | ||
</code> | </code> | ||
Ligne 588: | Ligne 588: | ||
===Uploader un fichier de l'ordinateur vers le téléphone=== | ===Uploader un fichier de l'ordinateur vers le téléphone=== | ||
- | <code> | + | <code bash> |
obexftp -b -p file.jpg | obexftp -b -p file.jpg | ||
</code> | </code> | ||
Ligne 601: | Ligne 601: | ||
=== Monter le périphérique comme répertoire avec obexfs === | === Monter le périphérique comme répertoire avec obexfs === | ||
Le montage se fait dans le répertoire de montage <Repertoire> | Le montage se fait dans le répertoire de montage <Repertoire> | ||
- | <code> | + | <code bash> |
obexfs -b AA:BB:00:11:CC:22 Repertoire | obexfs -b AA:BB:00:11:CC:22 Repertoire | ||
</code> | </code> | ||
Ligne 614: | Ligne 614: | ||
* Vérifier les paramètres dans l'utilitaire bluetooth (//Paramètres systèmes->Matériel->Bluetooth//) | * Vérifier les paramètres dans l'utilitaire bluetooth (//Paramètres systèmes->Matériel->Bluetooth//) | ||
Si l'utilitaire **Bluetooth** vous indique que le Bluetooth n'est pas activé, dans un [[:terminal]] saisir la [[:commande_shell|commande]] suivante : | Si l'utilitaire **Bluetooth** vous indique que le Bluetooth n'est pas activé, dans un [[:terminal]] saisir la [[:commande_shell|commande]] suivante : | ||
- | <code>sudo /etc/init.d/networking restart</code> | + | <code bash>sudo /etc/init.d/networking restart</code> |
Puis redémarrez l'ordinateur. | Puis redémarrez l'ordinateur. | ||
* Si vous possédez un ordinateur portable avec le bluetooth intégré, il vous faut peut-être l'activer avec un interrupteur matériel. Celui-ci peut être une combinaison de touches du clavier, par exemple Fn + F2 (Sur certains ordinateurs portables, le bouton ON/OFF du Wifi est aussi celui du **Bluetooth**. Pensez donc à le mettre sur ON). | * Si vous possédez un ordinateur portable avec le bluetooth intégré, il vous faut peut-être l'activer avec un interrupteur matériel. Celui-ci peut être une combinaison de touches du clavier, par exemple Fn + F2 (Sur certains ordinateurs portables, le bouton ON/OFF du Wifi est aussi celui du **Bluetooth**. Pensez donc à le mettre sur ON). | ||
Ligne 621: | Ligne 621: | ||
Si votre bluetooth réagit de manière étrange, (par exemple l'erreur : **Aucun adaptateur Bluetooth n'a été trouvé. Veuillez en connecter un**, sous Kubuntu, en allant dans **Configuration système -> bluetooth**), ou encore si vous n'arrivez plus à désactiver le bluetooth et que votre ordinateur n'est pas détecté :\\ | Si votre bluetooth réagit de manière étrange, (par exemple l'erreur : **Aucun adaptateur Bluetooth n'a été trouvé. Veuillez en connecter un**, sous Kubuntu, en allant dans **Configuration système -> bluetooth**), ou encore si vous n'arrivez plus à désactiver le bluetooth et que votre ordinateur n'est pas détecté :\\ | ||
Pour résoudre ce problème il suffit de lancer | Pour résoudre ce problème il suffit de lancer | ||
- | <code>sudo rfkill unblock all | + | <code bash>sudo rfkill unblock all |
sudo hciconfig hci0 up</code> | sudo hciconfig hci0 up</code> | ||
car l'utilitaire rfkill peut gêner l'utilisation du bluetooth. | car l'utilitaire rfkill peut gêner l'utilisation du bluetooth. | ||
Ligne 628: | Ligne 628: | ||
Parfois certaines cartes/clés buguent. Pour refaire fonctionner le bluetooth sans redémarrer, il suffit d'ouvrir un terminal et de taper ceci: | Parfois certaines cartes/clés buguent. Pour refaire fonctionner le bluetooth sans redémarrer, il suffit d'ouvrir un terminal et de taper ceci: | ||
- | <code>sudo /etc/init.d/bluetooth restart</code> | + | <code bash>sudo /etc/init.d/bluetooth restart</code> |
====Difficulté de détection d'un périphérique bluetooth==== | ====Difficulté de détection d'un périphérique bluetooth==== | ||
Il se peut que vous ayez un problème pour scanner les périphériques à proximité, si ce cas se présente, dans un [[:terminal]] saisir la [[:commande_shell|commande]] suivante : | Il se peut que vous ayez un problème pour scanner les périphériques à proximité, si ce cas se présente, dans un [[:terminal]] saisir la [[:commande_shell|commande]] suivante : | ||
- | <code>sudo hciconfig hci0 reset</code> | + | <code bash>sudo hciconfig hci0 reset</code> |
**Il faudra le faire à chaque branchement de votre clé bluetooth** | **Il faudra le faire à chaque branchement de votre clé bluetooth** | ||
Vous pouvez faire en sorte que cette commande soit exécutée automatiquement au démarrage, mais il faudra démarrer avec la clé insérée et ne pas la brancher à chaud pour que ça serve à quelque chose. | Vous pouvez faire en sorte que cette commande soit exécutée automatiquement au démarrage, mais il faudra démarrer avec la clé insérée et ne pas la brancher à chaud pour que ça serve à quelque chose. | ||
Ligne 660: | Ligne 660: | ||
En attendant que ce bug soit réparé vous pouvez le résoudre comme suit : | En attendant que ce bug soit réparé vous pouvez le résoudre comme suit : | ||
- | Par sécurité, commencer par faire une copie des fichiers de configuration modifiés : <code>sudo cp /etc/bluetooth/audio.conf /etc/bluetooth/audio.conf.bak | + | Par sécurité, commencer par faire une copie des fichiers de configuration modifiés : <code bash>sudo cp /etc/bluetooth/audio.conf /etc/bluetooth/audio.conf.bak |
sudo cp /etc/pulse/default.pa /etc/pulse/default.pa.bak | sudo cp /etc/pulse/default.pa /etc/pulse/default.pa.bak | ||
sudo cp /usr/bin/start-pulseaudio-x11 /usr/bin/start-pulseaudio-x11.bak</code> | sudo cp /usr/bin/start-pulseaudio-x11 /usr/bin/start-pulseaudio-x11.bak</code> | ||
Ligne 683: | Ligne 683: | ||
Un bug de la version 5.36 (et plus ?) de bluez fait qu'il est impossible d'activer le mode HSP/HFP via pavucontrol (l'interface graphique de configuration de pulseaudio). En regardant dans les logs (cat /var/log/syslog) vous trouvez un message d'erreur au moment où vous activez le bluetooth : | Un bug de la version 5.36 (et plus ?) de bluez fait qu'il est impossible d'activer le mode HSP/HFP via pavucontrol (l'interface graphique de configuration de pulseaudio). En regardant dans les logs (cat /var/log/syslog) vous trouvez un message d'erreur au moment où vous activez le bluetooth : | ||
- | <code>[pulseaudio] module-bluez5-device.c: Refused to switch profile to headset_head_unit: Not connected</code> | + | <code bash>[pulseaudio] module-bluez5-device.c: Refused to switch profile to headset_head_unit: Not connected</code> |
Pour résoudre ce problème, il faut : ou bien passer à la version précédente de bluez (la 5.35 fonctionne), ou bien passer à la version suivante ! La version 5.40 présente dans le dépot experimental de debian fonctionne. | Pour résoudre ce problème, il faut : ou bien passer à la version précédente de bluez (la 5.35 fonctionne), ou bien passer à la version suivante ! La version 5.40 présente dans le dépot experimental de debian fonctionne. | ||
==== Le transfert de fichiers depuis l'ordinateur vers le périphérique ne fonctionne pas et renvoie l'erreur GDBus.Error:org.openobex:Error.Failed: Unable to request session ==== | ==== Le transfert de fichiers depuis l'ordinateur vers le périphérique ne fonctionne pas et renvoie l'erreur GDBus.Error:org.openobex:Error.Failed: Unable to request session ==== | ||
Il s'agit d'un [[https://bugs.launchpad.net/ubuntu/+source/gnome-bluetooth/+bug/1148033|bug]]. Une solution est de lancer bluez-simple-agent avant le transfert, par exemple dans le terminal : | Il s'agit d'un [[https://bugs.launchpad.net/ubuntu/+source/gnome-bluetooth/+bug/1148033|bug]]. Une solution est de lancer bluez-simple-agent avant le transfert, par exemple dans le terminal : | ||
- | <code>bluez-simple-agent</code> | + | <code bash>bluez-simple-agent</code> |
puis de relancer l'envoi du fichier normalement. | puis de relancer l'envoi du fichier normalement. | ||