J'ai un problème similaire :
$ adb devices
List of devices attached
4df15d6e02a55f15 device
???????????? no permissions
Enquête
Si je cours lsusb
Je peux voir quels sont les appareils que j'ai connectés, et où :
$ lsusb
...
Bus 002 Device 050: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone ...
Bus 002 Device 049: ID 18d1:4e42 Google Inc.
Cela montre mon Samsung Galaxy S3 et mon Nexus 7 (2012) connecté.
Je vérifie les permissions sur ceux-ci :
$ ls -l /dev/bus/usb/002/{049,050}
crw-rw-r-- 1 root root 189, 176 Oct 10 10:09 /dev/bus/usb/002/049
crw-rw-r--+ 1 root plugdev 189, 177 Oct 10 10:12 /dev/bus/usb/002/050
Attendez. Quoi ? D'où vient ce groupe "plugdev" ?
$ cd /lib/udev/rules.d/
$ grep -R "6860.*plugdev" .
./40-libgphoto2-2.rules:ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="6860", \
ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", \
ENV{ID_MEDIA_PLAYER}="1", MODE="0664", GROUP="plugdev"
./40-libgphoto2-2.rules:ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", \
ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", \
ENV{ID_MEDIA_PLAYER}="1", MODE="0664", GROUP="plugdev"
(J'ai enveloppé ces lignes)
Notez le GROUP="plugdev"
lignes. Notez également que cela ne fonctionne pas pour l'autre ID de dispositif :
$ grep -Ri "4e42.*plugdev" .
(rien n'est renvoyé)
Réparation
OK. Alors, quelle est la solution ?
Ajouter une règle
Créer un fichier /etc/udev/rules.d/99-adb.rules
contenant la ligne suivante :
ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e42", ENV{ID_GPHOTO2}="1",
ENV{GPHOTO2_DRIVER}="proprietary", ENV{ID_MEDIA_PLAYER}="1",
MODE="0664", GROUP="plugdev"
Ceci devrait être une seule ligne, je l'ai enveloppé ici pour la lisibilité.
Redémarrer udev
$ sudo udevadm control --reload-rules
$ sudo service udev restart
C'est ça.
Débranchez/rebranchez votre appareil.
Essayez-le.
$ adb devices
List of devices attached
4df15d6e02a55f15 device
015d2109ce67fa0c device
0 votes
J'ai pu travailler avec HTC Wildfire sous fedora 17/18 en exécutant eclipse en tant qu'utilisateur Root.
9 votes
Étape 3 de developer.Android.com/outils/appareil.html
0 votes
La solution est de changer SYSFS en ATTR. Comme le dit Michael dans sa réponse.
2 votes
Il y a beaucoup de mauvaises réponses ici qui suggèrent imprudemment de lancer ADB en tant que Root avec sudo ou en le rendant setuid. Ce n'est pas la façon dont il est censé être utilisé. A approprié La règle udev rendra le périphérique disponible pour adb lorsqu'il sera exécuté sous votre compte utilisateur, pas en tant que racine.
0 votes
@Chris Stratton Peut-être pourriez-vous poster la bonne réponse plutôt que de continuer à poster que toutes les réponses ici sont fausses ? Cela n'arrange pas les choses...
0 votes
J'ai eu le même problème et en réactivant l'option
Media device (MTP)
a fait l'affaire. Cette opération est quelque peu cachée sous Paramètres->Stockage, puis connexion USB à l'ordinateur via le menu Stockage.