GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Android – No-Name-i.onik-Android-Tablet wird von ADB nicht erkannt – ADB-Geräte sind leer

Izzys Antwort ist irreführend. Zwei nicht zusammenhängende Dinge wurden verwechselt (die Hersteller-ID-Liste in adb auf der einen Seite und die Berechtigungseinstellung in Linux auf der anderen Seite).

1) von adb berücksichtigte Geräte:

Adb hat eine hartcodierte Liste von USB-Anbieter-IDs, die es versucht. Z.B. HTC-Mobiltelefone verwenden 0xbb4, das aufgelistet ist (Quelldatei usb_vendors.c), 0x2207 hingegen nicht.

Die nur Eine Möglichkeit, diese Liste zu ergänzen (ohne den Quellcode zu patchen), besteht darin, Hersteller-IDs in die Datei $HOME/.android/adb_usb.ini einzufügen , Zeile für Zeile. (HOME ist richtig eingerichtet?)

Es wird kein spezielles Kabel benötigt.

2) Berechtigungseinstellung für Nicht-Root-Zugriff:

Das udev-fummeln soll dem Benutzer Zugriff auf z.B. /dev/bus/usb/002/009 (Busnummer/Gerätenummer ändern; siehe lsusb für aktuelle Werte).

Die Details dazu sind für die Frage des ursprünglichen Posters nicht relevant, da er adb als root ausführte.


Wie unter Konfigurieren von ADB für Nexus 4 unter Ubuntu 11.10 beschrieben, ist es unter Linux wichtig, in entweder ~/.android/adb_usb.ini aufgeführt zu sein (benutzerbasiert) oder /etc/udev/rules.d/51-android.rules . Die Syntax für beide Dateien ist unterschiedlich:Während es im ersten Fall ausreicht, einfach die Hersteller-ID hinzuzufügen (echo 0x18d1 >> ~/.android/adb_usb.ini für ein Nexus 4) ist der Eintrag für die UDEV-Regel etwas komplexer. Details finden Sie in der verlinkten Frage (bzw. deren Antworten).

Im Fall von krlmlr war es kein "entweder-oder", aber anscheinend wurden beide Teile benötigt (das hatte ich noch nie, und ich habe noch nie den adb_usb.ini verwendet -- aber das bedeutet nicht, dass es keine solchen Ausnahmen gibt). Durch Hinzufügen des Geräts an beiden Stellen (was sowieso nicht schaden kann) tauchte das Gerät schließlich auf.

Zwei zusätzliche Anmerkungen:Nach dem Ändern der UDEV-Regeln muss der UDEV-Dienst neu gestartet werden, um die Änderungen zu übernehmen. Unter Ubuntu kann dies über sudo service udev restart erfolgen (Alternativ können Sie UDEV einfach dazu zwingen, seine Regeln mit udevadm control --reload-rules neu zu laden ). Wenn Ihr Gerät immer noch nicht erkannt wird, war es höchstwahrscheinlich angeschlossen, während Sie die Änderungen vorgenommen haben. Sie müssen dann das USB-Kabel trennen und wieder anschließen. Natürlich USB-Debugging muss auf Ihrem Gerät aktiviert sein :)

Beispiel

Basierend auf der folgenden Ausgabe von lsusb für das betreffende Android-Gerät:

Bus 002 Device 009: ID 2207:0010  

es war notwendig, /etc/udev/rules.d/51-android.rules zu erstellen als root mit folgendem Inhalt:

SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", MODE="0660", GROUP="plugdev"

und um ~/.android/adb_usb.ini zu erstellen mit folgendem Inhalt:

0x2207

Die erste ist erforderlich, um normale Benutzer (die zur Gruppe plugdev gehören) zuzulassen ), um auf das Gerät zuzugreifen. Beachten Sie die Berechtigungsmaske 0660 anstelle des häufig vorkommenden 0666 was unter dem Gesichtspunkt der Sicherheit schwächer ist (letzteres erlaubt "Welt"-Zugriff, während ersteres nur "Benutzer- und Gruppen"-Zugriff erlaubt). Der zweite ist erforderlich, damit adb versucht, überhaupt mit dem Gerät zu sprechen. Danach:

sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
adb kill-server

und trennen Sie Ihr Android-Gerät. Dann

adb devices

zeigte schließlich das Android-Gerät.

Für mein LG Optimus 4X HD , war es ausreichend, eine Zeile zu /etc/udev/rules.d/51-android.rules hinzuzufügen :

SUBSYSTEMS=="usb", ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61a6", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

Vielleicht die SYMLINK Option macht den Unterschied, dass ich den zusätzlichen Eintrag in ~/.android/adb_usb.ini nicht benötigt habe .


Linux
  1. Linux – Ungültige Konfiguration „x86_64′:Maschine „x86_64′ nicht erkannt?

  2. Installieren von Grub 2 auf Mdadm, welches Gerät?

  3. V4l2loopback-Geräte werden in Anwendungen nicht angezeigt?

  4. uflash:Befehl nicht gefunden

  5. losetup:Befehl nicht gefunden

Lsblk-Befehl in Linux (Blockgeräte auflisten)

Termux – Führen Sie Linux auf Android-Geräten aus, kein Rooting erforderlich!

So erkennen und verwalten Sie Geräte unter Linux

Wie starte ich einen Android-Emulator in Ubuntu 16.04?

Partitionstabelle wird vom Linux-Kernel nicht erkannt

Android - Ein Android-Tablet als Wacom-Zeichentablett für einen PC verwenden?