Il est très probable que udev n'ajoute pas correctement votre périphérique. J'ai aussi eu ce problème et j'ai trouvé une solution relativement simple.
Trouvez votre appareil dans lsusb
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink)
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Point d'intérêt dans cette affaire :
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Vérifiez le fichier du dispositif correspondant
$ ls -l /dev/bus/usb/001/006
Vous verrez probablement quelque chose comme
crw-rw-r-- 1 root root 189, 5 Sep 8 21:47 /dev/bus/usb/001/006
Cela signifie que le fichier du périphérique appartiendra à l'utilisateur root et au groupe root, ce qui explique pourquoi adb peut y accéder en tant que root mais pas en tant qu'utilisateur standard.
Ceci peut être résolu en créant une nouvelle règle udev - j'ai utilisé /etc/udev/rules.d/51-android.rules
- pour ajouter le dispositif au groupe plugdev
dont adb suppose déjà que vous êtes membre (vous devriez l'être, vérifiez en utilisant la commande id
)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660",
GROUP="plugdev", SYMLINK+="android%n"
**N'oubliez pas de remplacer l'ATTR{idProduct}=="4ee7" par l'identifiant de votre propre produit que vous avez trouvé à la première étape. ** (Si votre fournisseur n'est pas Google Inc., remplacez également l'identifiant du fournisseur par celui qui se trouve avant les deux points dans lsusb).
Maintenant, débranchez votre appareil et rebranchez-le (udev devrait répondre automatiquement au nouveau fichier) et tadaa :
$ adb devices
List of devices attached
YC873P0G device
Source : Ajout de règles udev pour le débogage USB des appareils Android - Janos Gyerik