Dominique Meeùs
Dernière modification le  
retour au sommaire Linux

Bluetooth

Depuis Ubuntu 8.10, tout ça a cessé de fonctionner. Voir le bug #289836 sur Launchpad. Voir là en date 2008-11-07 ma solution provisoire.

Dans l’état actuel (mars 2009) d’Ubuntu 9.04, ça fonctionne de moins en moins et ma solution provisoire du 7-11-2008 implique l’installation de paquets trop éloignés du reste pour encore être compatibles. Donc plus de solution du tout ! Pas mieux en juin et ça ne change pas avec le noyau 2.6.29. Par contre, ça remarche avec Bluez 4.40-2. Bingo !

Quelques commandes :

/etc/init.d/bluetooth (un script de lancement du démon bluetoothd) start, status, stop.

modprobe btusb, rmmod btusb.

Il semble qu’on ait remplacé le démon hcid par bluetoothd à partir de Bluez 4.xx et le driver hci_usb par btusb à partir du noyau 2.6.27. L’un ou l’autre de ces changements, ou les deux, étaient incompatibles avec certains dispositifs Bluetooth, dont mon D-Link DBT-122. Launchpad est noyé de plaintes de gens qui ont divers ennuis, plus ou moins graves, qui rendent leur Bluetooth pratiquement inutilisable, dans deux versions successives d’Ubuntu, 8.10 et 9.04. Cependant ça marche en installant les paquets bluetooth, bluez et libbluetooth3 en version 4.40-2. Il reste à espérer qu'ils seront bientôt intégrés à la distribution.

J’ai installé un adaptateur D-Link DBT-122. Comme dispositif USB il est listé par

~$ lsusb | grep Bluetooth
Bus 001 Device 003: ID 2001:f111 D-Link Corp. [hex] DBT-122 Bluetooth adapter

et en Bluetooth

# hcitool dev
Devices:
        hci0    00:13:46:00:55:A0

Donc mon adaptateur est reconnu et j’ai son adresse MAC.

Quelques commandes

Si on édite /etc/bluetooth/hcid.conf, pour que le démon hcid en tienne compte, il faut le relancer: hcid restart. Comme les choses commencent par ne pas marcher, on veut éditer les fichiers de configuration pour voir ce que ça change mais il est probable que le fichier par défaut est assez bon et que le problème venait d’ailleurs (voir par exemple la « visibilité » ci-dessous à propos de hcitool scan).

# hciconfig donne l’état du dispositif Bluetooth local, par exemple
hci0:   Type: USB
        BD Address: 00:13:46:00:55:A0 ACL MTU: 377:10 SCO MTU: 16:0
        UP RUNNING PSCAN ISCAN
        RX bytes:4876 acl:64 sco:0 events:236 errors:0
        TX bytes:2267 acl:65 sco:0 commands:77 errors:0

On peut arrêter et redémarrer hci0 par hciconfig hci0 down et hciconfig hci0 up.

On peut chercher un dispositif Bluetooth voisin par hcitool scan. Par exemple, avec mon gsm, ça donne :
Scanning ...
        00:13:70:0E:8A:77       Nokia 6021

Attention, ceci ne marche que si le téléphone est « visible ». Pour des raisons de sécurité, le téléphone peut être masqué. Cherchez cette option de visibilité dans les paramètres Bluetooth du téléphone et changez-la le cas échéant.

Avec hcitool inq, on obtient quelques détails plus techniques comme la classe :
Inquiring ...
       00:13:70:0E:8A:77        clock offset: 0x61ca    class: 0x520204

La connaissance de l’adresse MAC (plus exactement BD Address) du dispositif voisin permet de tester une liaison de bas niveau et de demander encore plus de renseignements. On peut lancer un ping par l2ping 00:13:70:0E:8A:77 (Ctrl-C pour arrêter). En demandant hcitool info 00:13:70:0E:8A:77, j’obtiens
Requesting information ...
        BD Address:  00:13:70:0E:8A:77
        Device Name: Nokia 6021
        LMP Version: 1.2 (0x2) LMP Subversion: 0x4db
        Manufacturer: Cambridge Silicon Radio (10)
        Features: 0xbf 0xee 0x0f 0x40 0x18 0x18 0x00 0x00
                <3-slot packets> <5-slot packets> <encryption> <slot offset>
                <timing accuracy> <role switch> <sniff mode> <RSSI>
                <channel quality> <SCO link> <HV3 packets> <u-law log>
                <A-law log> <CVSD> <paging scheme> <power control>
                <transparent SCO> <inquiry with RSSI> <AFH cap. slave>
                <AFH class. slave> <AFH cap. master> <AFH class. master>

Bien sûr, je ne prétends pas que je comprends le détail de la réponse. Ça m’encourage de voir qu’une certaine communication est possible entre l’ordinateur et le téléphone. (Étape suivante : pouvoir lire et écrire des données sur mon téléphone, comme les adresses et les rendez-vous.)

Liaison entre ordinateur et téléphone

Pairing

Les deux dispositifs doivent (avec l’option security user dans /etc/bluetooth/hcid.conf) s’échanger un code PIN (personal identification number). (C’est ce qu’on appelle le pairing.) Il faut et il suffit qu’ils s’échangent la même série de chiffres. (Il n’y a pas de raison que ce soit le PIN du téléphone. Ce qui compte c’est qu’on utilise le même PIN des deux côtés lors de l’établissement de la liaison.)

J’ai suivi les indications du Gammu Wiki sur la connexion Bluetooth avec le téléphone. J’ai écrit alors dans /etc/bluetooth un nouveau PIN helper que j’appelle echopin et qui contient les deux lignes
#!/bin/bash
echo "PIN:1234"

Dans /etc/bluetooth/hcid.conf, je remplace le PIN helper par pin_helper /etc/bluetooth/echopin. Je relance hcid restart. J’ai demandé au téléphone de chercher des équipements audio. Il a trouvé l’ordinateur (en réalité le dispositif Bluetooth, on pourrait le déménager sur un autre ordinateur). Dans Wammu (ci-dessous), j’ai demandé de se connecter au téléphone. Le téléphone a demandé le PIN, j’ai donné 1234 et la connexion a réussi. Maintenant, l’ordinateur et le gsm se connaissent et ne demandent plus de PIN pour se connecter. (Par défaut, le téléphone demande l’autorisation de se connecter et ne se déconnecte pas de lui-même – ce qui empêche Wammu de se reconnecter. Il vaut mieux autoriser du côté du téléphone les connexions automatiques avec l’ordinateur.)

Avec Ubuntu 8.04, mon fichier hcid.conf a changé mais je n’ai pas dû refaire le pairing. Avec 8.10, quand j’ai résolu les problèmes hardware, j’ai du refaire le pairing et en chipotant un peu, j’y suis arrivé, je ne sais plus comment.

Gestionnaire Bluetooth

Affiche une fenêtre Bluetooth devices. La commande Devices/Scan affiche mon Nokia 6021. La commande Edit/Properties ne donne rien.

Partage de fichiers Bluetooth

Affiche une icone d’activité. Semble attendre qu’on (le téléphone) lui envoie des fichiers. J’ai aussi réussi à envoyer à mon téléphone une nouvelle sonnerie mais je ne me rappelle plus si c’est par ceci ou par Wammu.

Gammu/Wammu

Wammu est l’interface graphique d’une application en lignes de commandes Gammu. À en juger par des articles et leurs images d’écran, c’est juste ce qu’il faut : gestion des adresses, des tâches et de l’agenda, avec possibilité de backup du téléphone. À partir d’Ubuntu 7.04, il y a une version de Wammu qui fonctionne.

Les paquets deb proposés avaient des dépendances incomptatibles avec Ubuntu. J’ai trouvé sur le Wiki de Gammu.org un script que j’ai appelé insgw pour installer Gammu et Wammu dans Ubuntu 6.06. Je l’ai exécuté comme root. J’ai eu ainsi dans le menu Accessoires un Wammu qui fonctionnait (et qui me parlait en français sans que je le lui aie demandé).

Il faut encore pour la relation avec le téléphone des fichiers de configuration corrects qui sont ~/.gammurc et ~/.Wammu avec surtout l’adresse MAC du gsm. Et voilà, je demande à Wammu de récupérer Calendrier ; Appels sortant, manqué, reçu (sic pour le singulier) ; Contacts téléphone, carte SIM ; Messages Lu, Envoyé, Non lu, Non envoyé ; Choses à faire, et j’ai tout sur un écran de 17", — sensiblement plus grand que celui du gsm — et je peux en prendre un backup. Wow !

On peut éditer. L’édition se fait en temps réel dans le téléphone. Je peux aussi mettre le téléphone à l’heure sur l’horloge de l’ordinateur. Si je veux accéder aux messages, Wammu se plante.

Si j’édite ou je crée un item dans le calendrier, j’ai un message disant que « It was not possible to read saved entry! It might be different that the one saved in phone until you reread all entries. » mais ça marche quand même. Par contre, on ne peut pas éditer un item existant. On peut en effacer. L’interface est fruste : une liste. De même pour les contacts.

Le format et le contenu des fichiers enregistrés dépend de l’extension. Un fichier .vcf donne un fichier texte des contacts en format VCard. Un fichier .ldif donne un fichier texte des contacts en format d’importation LDAP. (On pourrait aussi sauver les contacts dans un format .lmb de Nokia mais cela plante Wammu.) Un fichier .vcs donne un fichier texte de l’agenda en format VCalendar. Un fichier .ics donne un fichier texte de l’agenda en format iCal. Toute autre extension (.backup par défaut si on n’en met pas) donne un backup Gammu. On peut écrire l’extension ou la sélectionner comme type de fichier dans la boîte de dialogue étendue de sauvegarde. Ce devrait être un fichier texte mais gedit refuse de l’ouvrir et bluefish donne seulement deux caractères spéciaux.

Les fichiers iCal peuvent être importés dans l’extension calendrier Lightning de Thunderbird. Voir ici la solution d’un problème de caractères accentués.

Gnokii

Gnokii est une autre application de gestion des données du téléphone, qui se trouve dans les dépôts de paquets d’Ubuntu et de Debian. Synaptic installe dans le menu Accessoires l’interface graphique xGnokii. La fenêtre de base de xnokii est une horreur qui rappelle certains media players. Par contre, les contacts sauvés le sont en format texte genre CSV (avec point-virgule), contrairement au format propriétaire de Gammu. Chez moi, xGnokii se plantait d’abord en accédant à l’agenda. (Contrairement à Wammu, Gnokii se déconnecte en se plantant.) Il est vrai que Wammu fait des difficultés aussi avec cet agenda : ça marche, mais avec un message d’erreur. L’interface calendrier est à peine moins fruste que celle de Wammu. On a la liste en dessous du calendrier. Si on sélectionne une note, le jour est mis en évidence dans l’agenda mais cliquer sur un autre jour de l’agenda ne fait pas naviguer dans la liste. Gnokii ne veut pas enregistrer mon agenda (pas de message d’erreur, il ne fait ni ne dit rien).

Le paquet gnokii contient (et Synaptic installe du même coup) l’interface xgnokii. Il existe aussi une autre interface, Gnocky, à télécharger séparément, que je n’ai pas essayée parce que les copies d’écran montrent qu’elle ne gère pas l’agenda.

MultiSync

Devrait permettre de synchroniser Evolution avec un gsm (ou d’autres PIMs, Personal Information Managers). Utilise IrMC que mon Nokia 6021 ne supporte pas.

Retour en haut de la page