logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Faire reconnaître votre smartphone, tablette sous Android

Introduction

Le propos de ce tutoriel est de faire communiquer nos périphériques sous Android (smartphones, et autres tablettes) avec notre station fonctionnant sous Debian (Stable, Sid).

Préférer l'usage des ports USB 2 … il peut y avoir quelques dysfonctionnements avec les ports USB 3 !

Vérification

Vérification côté périphérique

Il faut commencer en effet par paramétrer votre tablette ou smartphone dans le mode de “Débogage USB” nécessaire !

Allumez votre périphérique, puis allez dans le menu “Paramètres”, choisissez le menu “Options pour les développeurs”, activez-le, puis cocher le choix “Débogage USB”.

Si le menu “Options pour les développeurs” n'apparaît pas, c'est qu'il n'est pas actif … pour l'activer, tapotez une dizaine de fois sur la mention “Numéro de modèle”, dans le menu “À propos de la tablette” (ou du téléphone), toujours dans les “paramètres”.

Vérification côté ordi

Connectez le périphérique sur le port USB de votre ordinateur :

lsusb

Pour l'exemple, voici ce que retourne un “Samsung S3”, une tablette “Samsung”, de modèle “Galaxy Tab” :

Bus 006 Device 004: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II], GT-I9300 Phone [Galaxy S III], GT-P7500 [Galaxy Tab 10.1]

Voici ce que retourne une tablette de marque Pipo M8HD :

Bus 002 Device 014: ID 2207:0010
L'information à retenir est celle suivant 'ID' … La première série de 4 chiffres est l'identifiant du fabriquant, nommé idVendor ; la seconde série de 4 chiffres est l'identifiant du produit, nommée idProduct !

La commande suivante permet de s'assurer que le périphérique Android communique bien toutes ses propres informations à votre station Debian : <code user>lsusb -D /dev/bus/usb/$(lsusb | grep “votre_idVendor” | awk '{ print $2“/“substr($4,0,3)}')</code> Pour l'exemple (dont l'idVendor est 2717 - remplacez par celle correspondant à votre périphérique) : <code user>lsusb -D /dev/bus/usb/$(lsusb | grep “2717” | awk '{ print $2”/“substr($4,0,3)}')</code> <code>Device: ID 2717:ff40 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x2717 idProduct 0xff40 bcdDevice 2.16 iManufacturer 2 MediaTek iProduct 3 MT65xx Android Phone iSerial 4 0123456789ABCDEF bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 62 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 0 iInterface 5 MTP Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x001c 1x 28 bytes bInterval 6 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 67 bInterfaceProtocol 1 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0001 Self Powered </code> —- Un autre moyen de confirmer la prise en charge du périphérique Android, juste après l'avoir connecté au port USB, est de taper la commande suivante : <code user>dmesg | grep -i “usb .* idVendor” | tail -1 | sed 's/\[ /\[/g'</code> <code>[279059.769436] usb 1-2: New USB device found, idVendor=2717, idProduct=ff40</code> <note important>Ce qui est nécessaire à retenir comme informations sont l'identifiant du fabriquant “idVendor”, et l'identifiant du périphérique nommé “idProduct” … elles nous serviront dans la phase de configuration ! Dans le cas de ce périphérique connecté, c'est idVendor=2717 et idProduct=ff40 </note> ===== Installation ===== Commençons par l'installation des binaires nécessaires, dans votre ordinateur Debian : <code root>apt install android-tools-adb android-tools-fastboot android-tools-fsutils </code> ===== Configuration ===== ==== Modifications de fichiers ==== Deux fichiers à modifier/créer sont nécessaires, dans Debian : 1/ le premier est un fichier système udev qui s'occupe de la gestion usb : <code root>nano /etc/udev/rules.d/51-android.rules</code> <code>SUBSYSTEM==“usb”, ATTR{idVendor}==“04e8”, MODE=“0666”, GROUP=“plugdev”</code> <note important>Il faut modifier le champ ATTR{idVendor} avec l'identifiant du fabriquant trouvé dans le contexte précédent de vérification !</note> 2/ le deuxième fichier qui est intéressant à créer ou à modifier s'il existe déjà, est le fichier personnel suivant : <code user>nano /etc/udev/rules.d/51-android.rules</code> Pour y ajouter l'information de l'identifiant du fabriquant de la manière suivante, soit un '0x' suivi de idVendor. Pour l'exemple, pour un “Samsung S3”, il faut écrire : 0x04e8 <note>Si vous avez plusieurs périphériques Android, écrivez chacune des informations relatives à ces équipements ligne par ligne … dans chacun de ces deux fichiers !</note> ==== Gestion utilisateur ==== Vérifier que votre utilisateur linux soit bien dans le groupe “plugdev” ! <code user>getent group plugdev</code> Vous devez avoir pour retour l'équivalent de ceci : <code>plugdev:x:46:votre_user_name</code> Si ce n'est pas le cas, que votre identifiant linux n'apparaisse pas, il va nous falloir l'ajouter au groupe en question : <code root>usermod -G plugdev votre_user_name</code> ==== Redémarrer le système udev ==== Maintenant que les fichiers sont modifiés, il est nécessaire de redémarrer le sous-système udev pour permettre la gestion correcte du périphérique : <code root>service udev restart</code> ===== Utilisation ===== Maintenant que votre périphérique Android est non seulement connecté en USB, reconnu puis correctement pris en charge par votre station Debian, il suffit d'utiliser l'outil adb ainsi : <code user>adb devices</code> Pour l'exemple, vous devriez avoir le retour d'information suivant : <code>List of devices attached WAWJM5UMUW device </code> <note tip>Pour obtenir l'aide relative à l'outil adb, il suffit de taper dans votre terminal, la commande portant son nom : adb … qui vous restituera les informations en anglais</note> ==== Erreurs connues ==== === error while loading shared libraries: libncurses.so.5 === Si vous fonctionnez avec une distribution GNU/Linux 64 bits, c'est qu'il vous manque les librairies pour l'architecture 32 bits ! === 'adb devices' : rien n'est affiché === Si rien n'est reconnu, et donc qu'aucun device n'apparaît, c'est que vous avez peut-être mal renseigné le fichier '/etc/udev/rules.d/51-android.rules' et/ou n'avez pas redémarrez le système udev ! Si malgré tout, vous êtes absolument sûr d'avoir bien rempli le fichier en question, et d'avoir redémarré udev, il peut être intéressant d'effectuer la manipulation suivante, vérifiez aussi que vous avez configuré le fichier personnel ~/.android/adb_usb.ini Si c'est le cas, redémarrer le serveur adb : <code user> adb kill-server adb devices</code> === 'adb devices' : offline === Lorsque je tape 'adb devices', le périphérique est reconnu mais affiché offline. <code user>adb devices List of devices attached WAWJM5UMUW offline</code> Il vous faudra alors : - désactivez l'option “Débogage USB”… - déconnectez/reconnectez votre tablette à l'ordinateur, en débranchant/rebranchant le câble USB. - activez à nouveau l'option “Débogage USB” À ce moment-là, essayez à nouveau la commande 'adb devices' ; vous devriez voir apparaître votre périphérique … correctement ! === 'adb devices' : ???????????? no permissions === Lorsque je tape 'adb devices', le périphérique n'est pas reconnu et il est affiché ???????????? no permissions. Il vous faut tuer le serveur, le redémarrer avec des droits administrateur ensuite le périphérique apparaîtra ! <code user>adb kill-server</code> <code root>adb start-server * daemon not running. starting it now on port 5037 * * daemon started successfully *</code> <code user>adb devices List of devices attached WAWJM5UMUW device</code> —- Voilà ce tutoriel est terminé … il ne traite pas de l'usage plus complet des outils 'adb', 'fastboot' … Au besoin, peut-être pourriez vous lire cet autre tutoriel dump-android**.

doc/materiel/reconnaitre-peripherique-android.1471163974.txt.gz · Dernière modification: 14/08/2016 10:39 par PengouinPdt

Pied de page des forums

Propulsé par FluxBB