2014-10-13 19 views
5

Cała linia tabletów nie jest już wyświetlana na urządzeniach ADB (pracowały dobrze tydzień wcześniej). Inne urządzenia z Androidem działają (np. Mój telefon Nexus 5). Po raz pierwszy napotykam ten problem. Czytałem i wypróbowałem większość rozwiązań, które znalazłem w SO i innych witrynach bezskutecznie. Oto sytuacja:ADB nie rozpoznaje już urządzenia.

  • Pokazują w lsusb jako Bus 010 Device 004: ID 18d1:dddd Google Inc..
  • Utworzono/edytowano /etc/udev/rules.d/51-android.rules i dodano SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666" (i kilka innych kombinacji atrybutów tutaj).
  • Ponownie uruchomiono udev przez sudo service udev restart.
  • Zrestartowany serwer ADB za pośrednictwem serwera adb kill-server; adb start-server`.
  • Wypróbował wszystkie porty USB na komputerze.
  • Wypróbowałem inny kabel USB.
  • Ponownie uruchomiony komputer i tablet.

Dziwne jest to, że nawet jeśli opróżnić /etc/udev/rules.d/51-android.rules plik i ponownie uruchomić demona udev, adb nadal wykrywa mojego Nexus 5 Telefon.

Zmiany Pamiętam, jak przed tym problemem zaczęło się dziać:

  • Rozpoczęcie korzystania z Androidem Studio zamiast Eclipse (chociaż używam tego samego ADK) i narzędzia)
  • Ulepszony Ubuntu do najnowszej wersji 14.04 (może niektóre zmiany tutaj/udev?)

Wszelkie dalsze sugestie są mile widziane, z góry dzięki.


EDIT: Po uruchomieniu lsusb -v jak zasugerowano w komentarzach, widzę ten opis:

bInterfaceClass   8 Mass Storage 
    bInterfaceSubClass  6 SCSI 
    bInterfaceProtocol  80 Bulk-Only 
    iInterface    1 Mass Storage 

natomiast Nexus 5 pokazuje jak

bInterfaceClass  255 Vendor Specific Class 
    bInterfaceSubClass 255 Vendor Specific Subclass 
    bInterfaceProtocol  0 
    iInterface    4 MTP 

EDIT: Tabletki działają doskonale przez ADB w innych komputerach (Windows i Linux). To musi być problem z moim pudełkiem.


EDYCJA: Jak zasugerowano w komentarzach, wypróbowałem ADB w trybie TCP i działa dobrze. Po uruchomieniu dmesg widzę system próbuje załadować sterownika Windows ADB użyciu ndiswrapper

[277701.803751] usb 1-4: reset high-speed USB device number 48 using ehci-pci 
[277701.952803] ndiswrapper (load_wrap_driver:103): couldn't load driver android_winusb; check system log for messages from 'loadndisdriver' 

Ta wiadomość nie wyświetla się na innych polach, gdzie ADB Linux działa dobrze przez USB.

+4

O zamknięciu głosowania: przeczytaj [FAQ] (http://stackoverflow.com/help/on-topic). Pytanie jest całkowicie poprawne dla StackOverflow. – m0skit0

+0

Miałem to wczoraj i naprawiłem, przełączając z USB na kamerę iz powrotem (Powiadomienie pojawia się na pasku stanu, gdy je łączysz). To był jedyny problem i zdarzyło się to nagle. – Opiatefuchs

+0

sprawdź http://ktnr74.blogspot.com/2014/09/the-most-comprehensive-write-up-on-how.html –

Odpowiedz

1

Ponieważ te same urządzenia działają na innych komputerach, można już wykluczyć problemy ze sprzętem po stronie tabletów.Kolejne rzeczy do sprawdzenia to:

  • uprawnienia USB na PC: chociaż inne urządzenia działają, można nadal masz wystarczających uprawnień, aby uzyskać dostęp do tabletek przy użyciu adb. Reguły udev, o których wspomniałeś, są specyficzne dla danego dostawcy, a czasem także specyficzne dla urządzenia. Jedynym sposobem wyłączenia uprawnień jako problemu jest uruchomienie adb jako użytkownika root. adb widzi demona, więc musisz zabić wszystkie wystąpienia adb przed próbą zrobienia tego:
    $ pkill adb
    $ sudo adb devices Jeśli urządzenie pojawi się na liście, musisz dostosować reguły udev. Tymczasowo możesz normalnie korzystać z adb - połączy się z usługą, która działa teraz jako root i dlatego działa zgodnie z oczekiwaniami.
  • Problemy ze sterownikami: W menu programisty na tablecie można wybrać opcję "adb over tcp" jako opcję. Włącz go i then connect to it from your PC. Jeśli to działa, sam mostek debugowania jest w porządku, dlatego połączenie USB musi być źródłem problemu. Możemy już wykluczyć wadliwy kabel, ponieważ urządzenie pojawia się w lsusb, a inna funkcjonalność działa zgodnie z oczekiwaniami. Uruchomienie dmesg powinno dostarczyć wymaganych informacji w celu rozwiązania problemu, prawdopodobnie jest to sterownik urządzenia zakłócającego. Spróbuj rozładować go, używając rmmod/modprobe.
0

Różnica od 12.10+ to wsparcie MTP. Wiem, że 14.04 używa go automatycznie, gdy tylko telefon jest podłączony. To ma być szybsze i prostsze niż "Mass Storage". Być może wchodzi ci to w drogę i powinieneś znaleźć sposób na wyłączenie go albo z komputera, albo z urządzenia?

+0

Dzięki, już wypróbowałem. MTP nie działa poprawnie na tych tabletach. Kiedy go aktywuję, nie pokazuje się nawet na magistrali USB. – m0skit0

Powiązane problemy