faire_communiquer_son_telephone_mobile_avec_linux_via_bluetooth
no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | faire_communiquer_son_telephone_mobile_avec_linux_via_bluetooth [2018/11/17 12:53] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Faites communiquer votre téléphone mobile avec votre Linux sous KDE ====== | ||
+ | Cet article est paru dans le magazine [[http:// | ||
+ | |||
+ | Merci encore à Joanna Bonka (j' | ||
+ | \\ | ||
+ | \\ | ||
+ | ===== Introduction ===== | ||
+ | |||
+ | Dans notre société actuelle, nous sommes de plus en plus constamment connectés avec le reste du monde. Téléphones, | ||
+ | |||
+ | Les téléphones mobiles actuels disposent de nombreuses fonctionnalités autres que la simple émission/ | ||
+ | En règle générale, lorsque l'on achète un téléphone mobile de dernière génération, | ||
+ | Mais qu'en est-il de la connexion entre le téléphone mobile et le PC ? La solution du câble USB reliant les deux équipements est tout à fait possible. Mais, bien qu' | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | ===== Bluetooth, vous avez dit Bluetooth ? ===== | ||
+ | |||
+ | ==== Présentation ==== | ||
+ | |||
+ | |||
+ | Créé en 1994 par le fabricant suédois Ericsson, le Bluetooth est un protocole de communication sans fil, défini en 1999 par le consortium Special Interest Group (SIG). Ce dernier a été créé en 1998 à l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 1 : Le logo Bluetooth// | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Le Bluetooth permet de créer des Personal Area Network (ou PAN), reliant ainsi des équipements entre eux sans liaison filaire, en général sur une dizaine de mètres (avec un émetteur de classe II et jusqu' | ||
+ | |||
+ | ^ Classe | ||
+ | | I | 100 mW (20 dBm) | 100 mètres | ||
+ | | II | 2,5 mW (4 dBm) | 15-20 mètres | ||
+ | | III | 1 mW (0 dBm) | 10 mètres | ||
+ | |||
+ | //Tableau 1 : Les classes d' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Pour sa communication, | ||
+ | |||
+ | Heureusement, | ||
+ | |||
+ | Question sécurité, le Bluetooth n'est pas en reste. En effet, la sécurisation passe par deux étapes : l' | ||
+ | \\ | ||
+ | \\ | ||
+ | ==== Principe de la communication ==== | ||
+ | |||
+ | Le Bluetooth est basé sur une architecture maître/ | ||
+ | |||
+ | Un piconet se crée instantanément et automatiquement lorsque plusieurs appareils Bluetooth sont dans le même rayon. Il est constitué d'un maître et au maximum de 7 esclaves actifs (ce nombre passe à 255 en mode « parked »). | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 2 : Un piconet constitué d'un maître, de 3 esclaves actifs et de 2 esclaves « parked » (source : Wikipedia)// | ||
+ | |||
+ | \\ | ||
+ | |||
+ | En effet, les adresses logiques des périphériques d'un piconet sont codées sur 3 bits, ce qui permet ainsi un maximum de 23 = 8 appareils. | ||
+ | |||
+ | Concernant les appareils en mode « parked », ils ne possèdent pas d' | ||
+ | |||
+ | Contrairement à ce que l'on pourrait croire, un maître ne peut communiquer avec tous ses esclaves en même temps. Il commute très rapidement de l'un à l' | ||
+ | |||
+ | Par ailleurs, deux piconets peuvent être relier ensemble. En effet, les périphériques esclaves peuvent avoir plusieurs maîtres. Ce qui forme un scatternet (figure 3). | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 3 : Un scatternet (source : Wikipedia)// | ||
+ | |||
+ | \\ | ||
+ | |||
+ | On distingue deux sitations pour pouvoir communiquer : | ||
+ | |||
+ | * Les périphériques ne se connaissent pas : dans ce cas, le périphérique initiateur de la communication doit d' | ||
+ | |||
+ | * Les périphériques se connaissent déjà : dans cette situation, la connexion entre les deux périphériques peut se faire immédiatement. On ne contrôle, cependant, pas la disponibilité du périphérique distant, cequi peut engendrer une tentative de connexion de plusieurs dizaines de secondes avant de renvoyer un message d' | ||
+ | |||
+ | Mais que se passe-t-il lors de l' | ||
+ | |||
+ | * //Mode passif// : le périphérique est à l' | ||
+ | |||
+ | * //Phase d' | ||
+ | |||
+ | * // | ||
+ | |||
+ | * // | ||
+ | |||
+ | * //Création d'un canal avec le point d' | ||
+ | |||
+ | * //Pairing à l'aide d'un code PIN// : il est possible que le point d' | ||
+ | |||
+ | * // | ||
+ | |||
+ | La procédure utilise un certain nombre de protocoles (SDP, L2CAP, RFCOMM). Ils font partie de ce que l'on appelle la pile protocolaire du Bluetooth. Voyons cela d'un peu plus près. | ||
+ | \\ | ||
+ | \\ | ||
+ | ==== La pile protocolaire ==== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 4: La pile protocolaire du Bluetooth (source : xgarreau.org)// | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Pour pouvoir communiquer avec le Bluetooth, il faut un driver ou pilote de périphérique. Une fois ce dernier développé (en général, nous n' | ||
+ | |||
+ | * //HCI// : c'est à travers cette couche que la communication avec le matériel s' | ||
+ | |||
+ | * //L2CAP (Logical Link Control & Adaptation Protocol)// : c'est le protocole minimal d' | ||
+ | |||
+ | * //SDP (Service Discovery Protocol)// : permet à un « client » d' | ||
+ | |||
+ | * //RFCOMM (Radio Frequency COMMunication)// | ||
+ | |||
+ | * //OBEX (OBject EXchange)// : c'est un protocole de communication permettant l' | ||
+ | |||
+ | Nous venons de faire un peu le tour en ce qui concerne le Bluetooth. Le but de cet article n' | ||
+ | |||
+ | C'est bien de présenter le Bluetooth, mais ce qui nous intéresse surtout, c'est comment l' | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | Il est évident que vous devez disposer d'un téléphone mobile équipé de la technologie Bluetooth. Le modèle que nous avons utilisé pour écrire cet article est un Samsung SGH-D900 (figure 5), équipé de la technologie Bluetooth, d'un appareil photo numérique, d'un lecteur MP3... | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 5 : Le Samsung SGH-D900 utilisé pour notre article// | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Si votre ordinateur ne dispose pas du Bluetooth, il vous faudra l' | ||
+ | |||
+ | |||
+ | Le matériel utilisé pour écrire cet article ayant été présenté succinctement (nous n' | ||
+ | |||
+ | La pile officielle Bluetooth, intégrée dans les sources du kernel Linux, s' | ||
+ | |||
+ | Pour pouvoir bénéficier du bluetooth sur votre distribution Linux, il vous faudra installer un certain nombre de paquetages : | ||
+ | |||
+ | * // | ||
+ | |||
+ | * // | ||
+ | |||
+ | * // | ||
+ | |||
+ | * // | ||
+ | |||
+ | * // | ||
+ | |||
+ | * // | ||
+ | |||
+ | Les deux derniers paquetages sont optionnels. bluez-firmware n'est nécessaire que pour charger le firmware dans votre périphérique Bluetooth si, bien entendu, ce dernier le nécessite. Quant à bluez-hciemu vous permettra d' | ||
+ | |||
+ | Un autre package est à installer sous KDE : // | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 6 : L' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Notez que si vous listez les processus actifs grâce à la commande //ps//, vous ne trouverez pas // | ||
+ | |||
+ | Ce package nécessite que vous installiez également // | ||
+ | |||
+ | |||
+ | Nous supposons que vous savez installer des logiciels sous Linux, et nous ne reviendrons pas dessus dans cet article. Nous allons donc passer directement à la configuration du Bluetooth. | ||
+ | \\ | ||
+ | \\ | ||
+ | ==== Configuration du Bluetooth ==== | ||
+ | |||
+ | La configuration du Bluetooth passe par l' | ||
+ | |||
+ | Prenons, tout d' | ||
+ | < | ||
+ | |||
+ | Puis saisissons le mot de passe du superutilisateur. | ||
+ | |||
+ | Les commandes suivantes vont nous permettre d' | ||
+ | |||
+ | < | ||
+ | athena:/ | ||
+ | |||
+ | Cette dernière commande nous renvoie les lignes suivantes : | ||
+ | < | ||
+ | hci0: Type: USB | ||
+ | BD Address: 11: | ||
+ | UP RUNNING PSCAN ISCAN | ||
+ | RX bytes:7593 acl:30 sco:0 events:74 errors:0 | ||
+ | TX bytes:890 acl:26 sco:0 commands:33 errors:0 | ||
+ | Features: 0xbf 0xfe 0x8d 0x78 0x08 0x18 0x00 0x00 | ||
+ | Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 | ||
+ | Link policy: RSWITCH HOLD SNIFF PARK | ||
+ | Link mode: SLAVE ACCEPT | ||
+ | Name: 'BlueZ athena (0)' | ||
+ | Class: 0x50010c | ||
+ | Service Classes: Object Transfer, Telephony | ||
+ | Device Class: Computer, Laptop | ||
+ | HCI Ver: 1.2 (0x2) HCI Rev: 0x1fe LMP Ver: 1.2 (0x2) LMP Subver: 0x1fe | ||
+ | Manufacturer: | ||
+ | </ | ||
+ | |||
+ | Les modules //hci_usb// et // | ||
+ | |||
+ | Ici, nous pouvons constater que nous disposons bien d'un module USB (//Type: USB//) et nous voyons son adresse (//BD Address: 11: | ||
+ | |||
+ | Voyons maintenant qui se trouve autour de nous. Pour ce faire, nous allons maintenant utiliser l' | ||
+ | < | ||
+ | athena:/ | ||
+ | Inquiring ... | ||
+ | 00: | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | < | ||
+ | athena:/ | ||
+ | Scanning ... | ||
+ | 00: | ||
+ | </ | ||
+ | |||
+ | Ici, l' | ||
+ | |||
+ | La classe 0x180204 | ||
+ | |||
+ | Vérifions les services offerts par notre téléphone. Pour cela, utilisons la commande //sdptool// : | ||
+ | < | ||
+ | athena:/ | ||
+ | Service Name: WBTEXT | ||
+ | Service Name: Serial Port | ||
+ | Service Name: Dial-up Networking | ||
+ | Service Name: Voice GW | ||
+ | Service Name: Voice GW | ||
+ | Service Name: Advanced audio source | ||
+ | Service Name: OBEX File Transfer | ||
+ | Service Name: Object Push | ||
+ | </ | ||
+ | |||
+ | Cet outil étant très bavard, nous nous sommes limités aux noms des services. Nous voyons que notre Samsung SGH-D900 nous offre un port série virtuel (//Serial Port//), un modem (//Dial-up Networking// | ||
+ | |||
+ | D' | ||
+ | < | ||
+ | man hciconfig | ||
+ | man hcitool | ||
+ | man sdptool | ||
+ | </ | ||
+ | |||
+ | Nous venons de voir ce que nous devions installer sur notre PC pour que nous puissions faire la communication dans le sens PC -> Téléphone. Mais le « dialogue » sera complet lorsque notre téléphone connaîtra notre PC, afin que la communication se fasse dans le sens Téléphone -> PC. C'est ce que nous allons voir maintenant. Bien entendu, tout ce que nous allons dire ici, concerne le Samsung SGH-D900. Pour un autre téléphone mobile, nous vous conseillons de vous reporter vers le manuel d' | ||
+ | |||
+ | Pour activer le Bluetooth sur le Samsung SGH-D900, nous devons nous rendre dans le menu //Jeux et applis -> Bluetooth -> Activer//, puis de sélectionner // | ||
+ | < | ||
+ | # | ||
+ | # HCI daemon configuration file. | ||
+ | # | ||
+ | ... | ||
+ | # Default settings for HCI devices | ||
+ | device { | ||
+ | # Local device name | ||
+ | # %d - device id | ||
+ | # %h - host name | ||
+ | name "BlueZ %h (%d)"; | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Nous voyons ici que le nom (//name//) sera donc constitué de //BlueZ//, suivi du nom d' | ||
+ | |||
+ | Et voilà, notre téléphone a reconnu notre PC. Entrons maintenant dans le vif du sujet, le transfert de données entre notre système et notre téléphone cellulaire. | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | ===== Transférer des données ===== | ||
+ | |||
+ | Plus haut en introduction, | ||
+ | \\ | ||
+ | \\ | ||
+ | ==== Envoyer des données depuis le téléphone mobile vers le PC ==== | ||
+ | |||
+ | Si vous êtes friands de photos et que vous utilisez régulièrement l'APN de votre téléphone mobile, vous constaterez assez vite qu'il vous faudra « décharger » vos photos vers votre PC pour récupérer la place manquante. Nous allons donc voir comment envoyer des fichiers depuis votre téléphone mobile vers votre PC. Bien entendu, ici, nous utilisons toujours notre Samsung SGH-D900, et les menus peuvent différer suivant votre modèle de téléphone. Nous vous conseillons donc de vous référer au manuel de votre téléphone pour voir exactement comment faire. | ||
+ | |||
+ | Le Samsung SGH-D900 dispose d'un menu //Mes fichiers// dans lequel tous nos fichiers sont contenus en fonction de leur type : //Images, Vidéos, Musique, Sons...// Nous allons choisir dans ce menu, le sous-menu //Images//. Nous trouvons encore d' | ||
+ | Nous y retrouvons l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 7 : Le transfert de fichiers est en cours d' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Une fois le transfert terminé, l' | ||
+ | |||
+ | Cependant, bien que le transfert a été effectué, n' | ||
+ | |||
+ | Nous allons voir comment changer cela, pour envoyer directement les fichiers du téléphone vers notre répertoire personnel. Commençons par créer un répertoire que nous nommerons // | ||
+ | < | ||
+ | manu@athena: | ||
+ | manu@athena: | ||
+ | </ | ||
+ | |||
+ | Maintenant que notre répertoire est créé, nous allons modifier un fichier de configuration pour que le téléphone envoie directement les fichiers vers ce répertoire. | ||
+ | |||
+ | Dans un terminal, nous allons commencer par prendre les droits du superutilisateur : | ||
+ | < | ||
+ | manu@athena: | ||
+ | Mot de passe : | ||
+ | athena:/ | ||
+ | </ | ||
+ | |||
+ | Allons dans le répertoire // / | ||
+ | < | ||
+ | athena:/ | ||
+ | athena:/ | ||
+ | </ | ||
+ | |||
+ | Mais pourquoi faire une copie, me direz-vous ? Tout simplement pour revenir en arrière en cas de problème. | ||
+ | |||
+ | Maintenant, ouvrons avec notre éditeur de texte préféré le fichier // | ||
+ | < | ||
+ | athena:/ | ||
+ | </ | ||
+ | |||
+ | Recherchons la section suivante : | ||
+ | < | ||
+ | ## Path: Hardware/ | ||
+ | ## Description: | ||
+ | ## Type: list(" | ||
+ | ## Default: | ||
+ | ## ServiceRestart: | ||
+ | OPD_DAEMON_ARGS=" | ||
+ | </ | ||
+ | |||
+ | et remplaçons // / | ||
+ | < | ||
+ | ## Path: Hardware/ | ||
+ | ## Description: | ||
+ | ## Type: list(" | ||
+ | ## Default: | ||
+ | ## ServiceRestart: | ||
+ | OPD_DAEMON_ARGS=" | ||
+ | </ | ||
+ | |||
+ | Sauvegardons le fichier modifié, puis redémarrons notre PC. A partir de maintenant, les fichiers que nous enverrons depuis notre téléphone vers notre PC seront transférés dans ce dossier. | ||
+ | |||
+ | Voyons maintenant comment profiter du lecteur MP3 de notre téléphone mobile. Pour cela, nous allons étudier la manière d' | ||
+ | \\ | ||
+ | \\ | ||
+ | ==== Envoyer des données depuis le PC vers le téléphone ==== | ||
+ | |||
+ | Ici, nous sommes dans une autre situation que précédemment. Vous voulez écouter de la musique avec le lecteur MP3 de votre téléphone. Vous ne devez donc plus envoyer des fichiers vers votre PC mais depuis ce dernier. Nous allons voir comment procéder. | ||
+ | |||
+ | La méthode est toute aussi simple que précédemment, | ||
+ | |||
+ | Sur notre PC, nous disposons d'un répertoire nommé //Music// contenant un certain nombre de fichiers musicaux au format MP3 (nous le rappelons encore une fois, ces fichiers ont été obtenus légalement). | ||
+ | |||
+ | Sélectionnons un (ou plusieurs) fichier(s) musicaux à envoyer à notre téléphone. Un clic droit nous ouvre un menu contextuel. Choisissons //Actions -> Envoyer avec Bluetooth...// | ||
+ | |||
+ | La fenêtre //Object OBEX Bluetooth Push Client// (figure 8) s' | ||
+ | |||
+ | Si vous possédez plusieurs appareils Bluetooth, sélectionnez celui vers lequel les fichiers seront transférés, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 8 : La fenêtre Object OBEX Bluetooth Push Client// | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Votre téléphone devrait vous demander si vous acceptez d' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 9 : Les fichiers sont en cours de transfert vers le téléphone// | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Le transfert terminé, les fichiers se retrouvent sur notre téléphone. Nous pouvons dès à présent les écouter sur le lecteur MP3 du téléphone. | ||
+ | |||
+ | Bien entendu, tout ce que nous venons de dire sur le transfert de données entre un téléphone et un PC est valable pour tout type de fichiers acceptés par le téléphone. | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | ===== Sauvegarder sa liste de contacts ===== | ||
+ | |||
+ | Avoir une copie de sauvegarde de sa liste de contacts peut s' | ||
+ | |||
+ | Avec notre Samsung SGH-D900, il nous suffit d' | ||
+ | |||
+ | |||
+ | Le téléphone vous propose alors différents choix : | ||
+ | |||
+ | * // | ||
+ | |||
+ | * //Tous les contacts// : envoie tous les contacts enregistrés dans la mémoire du téléphone et dans la carte SIM, | ||
+ | |||
+ | * //Tous les contacts téléphones// | ||
+ | |||
+ | * //Tous les contacts SIM// : n' | ||
+ | |||
+ | Choisissez l' | ||
+ | |||
+ | Le téléphone nous demande ensuite le périphérique vers lequel envoyer les contacts. Nous choisissons notre PC, nommé, nous le rappelons, //BlueZ athena (0)//. | ||
+ | |||
+ | Les contacts sont alors envoyés vers le PC sous la forme de cartes de visite (ou //vCard//) se présentant sous la forme d'un fichier texte contenant : | ||
+ | < | ||
+ | BEGIN:VCARD | ||
+ | VERSION:2.1 | ||
+ | N: | ||
+ | TEL; | ||
+ | BDAY: | ||
+ | X-IRMC-LUID: | ||
+ | END:VCARD | ||
+ | </ | ||
+ | |||
+ | La ligne commençant par N: correspond au nom et prénom du contact. La ligne suivante, elle, répresente le numéro de téléphone mobile du contact. On pourrait également trouver les numéros de téléphone du domicile et du bureau, ainsi que l' | ||
+ | |||
+ | Vous noterez le « s » à cartes de visite. En effet, au final, nous n' | ||
+ | |||
+ | Maintenant, vous n'avez plus qu'à importer ces //vCards// dans votre logiciel de carnet d' | ||
+ | |||
+ | Si toutefois, vous avez fait une mauvaise manipulation, | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | ===== Conclusion ===== | ||
+ | |||
+ | Cet article, nous a permis d' | ||
+ | Pour ceux qui ne souhaiteraient pas dépendre des bibliothèques QT (KDE) ou GTK (Gnome), il existe des outils en ligne de commande pour tout ce qui concerne le transfert de fichiers, notamment ObexFtp. Vous trouverez les liens dans l' | ||
+ | Nous espérons que cet article vous aura été bénéfique et que vous pourrez plus que jamais profité à fond de votre téléphone mobile en compagnie de votre Tux. | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | ===== Sur Internet ===== | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// |
faire_communiquer_son_telephone_mobile_avec_linux_via_bluetooth.txt · Dernière modification : 2018/11/17 12:53 de 127.0.0.1