ADB unter Ubuntu erkennt Nexus 4 nicht

8

Ich kann mein Nexus 4-Telefon von ADB unter Ubuntu nicht erkennen (12.04 mit einem neueren Kernel: 3.8.0-30-generic). Der Entwicklermodus ist auf dem Telefon aktiviert.

Das Gerät wird in lsusb angezeigt :

$ lsusb
...
Bus 003 Gerät 034: ID 18d1: 4ee5 Google Inc. 
...

Aber wenn ich ADB-Geräte starte, bekomme ich eine leere Liste. Ich habe im Internet viele Beiträge zu diesem Problem gefunden, aber keiner von ihnen löst das Problem. Es gibt zwei Lösungen.

  • Fügen Sie /etc/udev/rules.d/51-android.rules eine Regel hinzu . Ich habe verschiedene Variationen für den Inhalt dieser Datei gefunden. In den meisten Fällen sollten ein idVendor- und ein idProduct- Wert basierend auf der Ausgabe von lsusb festgelegt werden . Im Folgenden sind einige Beispiele aufgeführt, die ich ausprobiert habe
SUBSYSTEM == "usb", ATTRS {idVendor} == "18d1", ATTRS {idProduct} == "4ee5", MODE = "0666" GROUP = "androiddev", SYMLINK + = "android% n"
SUBSYSTEM == "usb", ATTR {idVendor} == "18d1", MODE = "0666", GROUP = "plugdev"
SUBSYSTEM == "usb", ATTRS {idVendor} == "18d1", SYMLINK + = "android_adb", MODE = "0666"
SUBSYSTEM == "usb", ATTR {idVendor} == "18d1", ATTR {idProduct} == "4ee5", MODE = "0666", OWNER = "my-login" 

Nachdem ich dies hinzugefügt habe, habe ich die Berechtigungen für die Regeldatei auf 644 gesetzt und den PC neu gestartet / udev neu gestartet, das Telefon neu gestartet und mein Nexus 4 angeschlossen.

  • Fügen Sie die Hersteller-ID zu ~ / .android / adb_usb.ini hinzu.
echo 0x18d1 >> ~ / .android / adb_usb.ini

Ich habe ADB-Geräte als Root und normaler Benutzer ausgeführt, erhalte jedoch nur eine leere Liste:

$ adb Geräte
* Daemon läuft nicht. Starten Sie es jetzt auf Port 5037 *
* Daemon erfolgreich gestartet *
Liste der angeschlossenen Geräte 

Irgendwelche Ideen, wie man dieses Problem löst? Jede Hilfe von Vorschlägen wäre sehr dankbar.

Lespaul86
quelle

Antworten:

7

Es reicht nicht aus, die Seite mit den Entwickleroptionen im Einstellungsmenü anzuzeigen (durch wiederholtes Tippen auf die Build-Nummer). Auf dieser Seite gibt es eine Option für das USB-Debugging , die standardmäßig deaktiviert ist.

Wenn das USB-Debugging aktiviert ist, wird beim Anschließen Ihres Geräts an einen PC über USB die Benachrichtigung "USB-Debugging verbunden" angezeigt, unabhängig davon, ob adbes derzeit auf dem PC ausgeführt wird.

Dan Hulme
quelle
Könnten Sie bitte Ihre Antwort detaillieren? Wo finde ich diese "Seite"?
Luís de Sousa
@ LuísdeSousa android.stackexchange.com/q/33496/12442
Dan Hulme
Ich versuche eine Verbindung herzustellen, adbweil der Touchscreen defekt ist. Ich habe keine Möglichkeit, auf eines der Menüs und Anwendungen zuzugreifen. Gibt es eine andere Möglichkeit, diese USB-Debugging-Funktion zu aktivieren?
Luís de Sousa
1

Befolgen Sie diese Anweisungen, um eine umfassendere Anleitung zum Konfigurieren der Nexus 4 udev-Regeln für Ubuntu zu erhalten:

So finden Sie die Vendor ID Ihres Geräts

Sie finden eine Hersteller-ID für Geräte mit USB-Verbindung mit dem folgenden Linux-Befehl:

lsusb

Dadurch wird eine Liste aller angeschlossenen USB-Geräte erstellt. Stellen Sie daher sicher, dass Ihr Gerät angeschlossen ist, bevor Sie dies tun.

Bus 001 Device 004: ID 18d1:4ee2 Google Inc.

Der erste Teil des Feldes nach der ID ist die Hersteller-ID (18d1) und der zweite Teil entspricht dem Modus, in dem das Gerät angeschlossen ist. In diesem Fall entspricht 4ee2 dem MTP-Modus mit aktiviertem Debug.

UDEV-REGEL FÜR NEXUS ERSTELLEN 4

Um das Nexus 4-Telefon unter Ubuntu erkennen zu können, müssen zunächst die richtigen udev-Regeln erstellt werden, mit denen das System das Telefon erkennen kann.

Diese udev-Regeln sollten in der Lage sein, 4 verschiedene Fälle zu behandeln:

  • Telefon im MTP-Modus verbunden (USB-Debug ein oder aus)
  • Telefon im PTP-Modus verbunden (USB-Debug ein oder aus)
  • Telefon im Fastboot-Modus verbunden
  • Telefon im Wiederherstellungsmodus verbunden

Sie werden in deklariert /etc/udev/rules.d/99-android.rules. Wenn die Datei bereits vorhanden ist, hängen Sie den Inhalt einfach am Ende an.

# sudo gedit /etc/udev/rules.d/99-android.rules

Der folgende Inhalt muss hinzugefügt werden. Stellen Sie sicher, dass Sie das Feld für Ihre Anmeldung durch Ihren richtigen Benutzernamen ersetzen, mit dem Sie angemeldet sind.

# Google Nexus 4 16 Gb
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", MODE="0666", OWNER="your-login" # MTP media (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0666", OWNER="your-login" # MTP media with USB debug on(multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="your-login" # PTP media (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee6", MODE="0666", OWNER="your-login" # PTP media with USB debug on (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0666", OWNER="your-login" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="your-login" # Recovery

Starten Sie die Dienste neu

Sobald dies erledigt ist, muss der udev-Dienst neu gestartet werden.

# sudo service udev restart

Beachten Sie, dass in einigen Fällen auch ein Neustart von adb erforderlich ist mit:

adb kill-server
adb start-server

Oder starten Sie das System vollständig neu mit:

sudo reboot -n

Das erneute Anschließen des USB-Kabels (anstelle eines Neustarts) funktioniert möglicherweise ebenfalls.

Autorisieren Sie die ADB-Verbindung

Wenn Sie gerade die ADB-Debug-Option auf Ihrem Telefon aktiviert und diese neue Verbindung hergestellt haben, listet der ADB-Befehl Ihr Gerät möglicherweise als auf unauthorized. Überprüfen Sie einfach den Bildschirm Ihres Telefons und autorisieren Sie die neue Verbindung.

Credits

Die meisten dieser Informationen wurden unter http://bernaerts.dyndns.org/android/267-android-nexus4-root-twrp-ubuntu gefunden . Dies ist eine Rooting-Anleitung für Nexus 4 auf Ubuntu. Ich habe nur den ersten Schritt dieses Handbuchs verwendet.

hcpl
quelle
Ich habe gerade diese Lösung von Ubuntu 14.04 ausprobiert und selbst nach dem Neustart des Systems wird das Nexus 4 nicht erkannt.
Luís de Sousa
Haben Sie versucht, adb mit Root-Berechtigungen zu starten? Siehe eine der anderen Antworten zu Ubuntu 14.04 + Haben Sie den USB-Verbindungsmodus auf dem Gerät überprüft?
hcpl
Ja, ich versuchte es mit sudo. Das Telefon wird im MTP-Modus mit deaktiviertem Debug verbunden.
Luís de Sousa
1

Ich verwende Ubuntu 14.04 LTS und habe festgestellt, dass ich adb mit Root-Berechtigungen ausführen muss, damit mein Telefon erkannt wird. Gerade bin ich gelaufen (aus dem Plattform-Tools-Verzeichnis) ./adb devicesund habe eine leere Liste erstellt. Ich habe adb als root neu gestartet, indem ich es ausgeführt habe ./adb kill-serverund dann sudo ./adb start-server. Jetzt adb deviceskehrt zurück:

List of devices attached 
01d17087d29dec60    device

Während es vorher so aussah:

Liste der angeschlossenen Geräte

the.laurence
quelle
töten, dann anfangen als Wurzel arbeitete für mich. Verwenden eines Nexus 5
Russ Wheeler
1
Ich habe diese Lösung gerade unter Ubuntu 14.04 ausprobiert und erhalte immer noch eine leere Geräteliste.
Luís de Sousa
0

Zu Ihrer Information: Ich habe kürzlich die Android-Version von 4.4 auf 5.0 auf meinem Telefon aktualisiert und ADB zeigt das Gerät nicht mehr als verbunden an. Es scheint, dass die USB-Verbindungsmethode MTP korrekt war, bevor es jetzt PTP sein muss .

Flowtron
quelle
Könnten Sie bitte Ihre Antwort detaillieren? Wo genau sollte diese Methode angepasst werden?
Luís de Sousa
Wie ich bereits sagte, war MTP VORHER korrekt, NACH dem Update war PTP korrekt.
Flowtron