====== Configurer UDEV pour accéder à son androphone via USB ====== La connexion via USB est indispensable pour des opérations de maintenance pointue nécessitant l'accès à //[[https://wiki.cyanogenmod.org/w/Doc:_fastboot_intro|fastboot]]// ou //[[https://wiki.cyanogenmod.org/w/Doc:_adb_intro|adb]]//. Il faut non seulement que l'appareil soit reconnu par votre ordi mais aussi que vous ayez les droits suffisants pour communiquer avec lui, sans devoir vous identifier en tant //root// ! La méthode recommandée consiste à : - s'assurer qu'on est membre du groupe //plugdev//((C'est généralement le cas de l'utilisatrice principale déclarée lors de l'installation du système. Sinon s'ajouter à ce groupe.)) - modifier la configuration UDEV de l'ordi en créant ou modifiant le fichier ///etc/udev/rules.d/51-android.rules// - activer la configuration ===== Appartenance au groupe plugdev ===== La commande suivante vous affiche la liste des groupes auxquels vous appartenez $ groups Si plugdev n'apparaît pas, il faut vous assurer que ce groupe existe et si oui, vous y ajouter. Tout cela dépasse le cadre de cette notice. ===== Fichier de configuration ===== Le fichier que l'on veut créer/modifier un fichier texte contenant une liste de déclarations, par exemple : #Acer SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0664", GROUP="plugdev" #ASUS SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0664", GROUP="plugdev" Ces déclarations indiquent les droits qui seront attribués aux équipement connectés via USB répondant aux caractéristiques listées. On pourrait être plus précise en différenciant les droits selon le modèle d'appareil et pas uniquement le fabricant et plus permissives en donnant des droits à tout le monde. Par exemple((Le fait d'utiliser la clés de sélection //SUBSYSTEMS// n'est pas anodine. En effet, certaines propriétés des équipements (idProduct) ne sont mises à disposition par eux-même mais par son device parent. Pour une explication plus poussée, lire [[http://www.reactivated.net/writing_udev_rules.html|Writing udev rules]])) : # ZTE Blade S # SUBSYSTEMS=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1354", MODE="0666" Dans le cas qui nous intéresse, on veut précisément se donner accès à tout les appareil, en tant l'utilisatrice principale ;-) Le site de l'OS libre CyanogenMod propose une liste [[https://wiki.cyanogenmod.org/w/UDEV|assez complète de déclarations]] qu'il suffira de copier/coller dans votre fichier de configuration((Je ne garantis pas que votre appareil est couvert par cette liste. Il vous faudra alors [[https://wiki.debian.org/HowToIdentifyADevice/USB|découvrir]] quels sont les codes associés à votre appareil et ajouter la déclaration correspondante, par simple imitation de l'existant.)). ===== Activer la configuration ===== On n'est pas sous Window$, on ne redémarre pas l'ordi ! LOL Une fois le fichier de configuration dûment enregistré, la commande suivante garantit que les modifications seront prises en compte : $ sudo udevadm control --reload-rules ; sudo udevadm trigger ===== Procédure résumée ===== $ groups //vérifier la présence de plugdev $ sudo nano /etc/udev/rules.d/51-android.rules //ajouter les déclarations voulues $ sudo udevadm control --reload-rules ; udevadm trigger //appliquer la configuration ===== Afficher les attributs UDEV d'un nouvel appareil ===== Si on ne dispose pas d'une liste prédéfinie d'attributs, on peut collecter ces derniers sur son ordi. La seule précondition est que le //device// soit reconnu par les pilotes installés et actifs sur le système de l'ordi. == Principe == - placer l'ordi en détection verbeuse - connecter le //device// à l'ordi - relever l'adresse udev du //device// - collecter les attributs de ce //device// - adapter une des règles vues précédemment avec les nouvelles valeurs == Réalisation == Je n'indique que les commandes spécifiques à la détection/collecte des attributs. >>> insérer le device $ udevadm monitor --kernel --property --subsystem-match=usb ... DEVNAME=/dev/bus/usb/001/012 ... $ udevadm info -a /dev/bus/usb/001/012 >>> collecter les attributs affichés (pagination) >>> identifier les valeurs des attributs à remplacer >>> écrire la règle == Sources == * [[https://stackoverflow.com/questions/1474266/how-to-identify-a-disconnecting-usb-device-using-udev-rules|How to identify a disconnecting USB device using udev rules ?]] * [[https://unix.stackexchange.com/questions/328641/which-udev-attributes-are-really-available-during-hot-cold-plug|Which udev-attributes are really available during hot-/cold-plug ?]]