2014-10-13 12 views
5

Un'intera linea di tablet non viene più visualizzata nei dispositivi ADB (hanno funzionato bene una settimana fa). Altri dispositivi Android funzionano (come il mio telefono Nexus 5). Questa è la prima volta che affronto questo problema. Ho letto e provato la maggior parte delle soluzioni che ho trovato su SO e altri siti senza alcun risultato. Ecco la situazione:ADB non riconosce più il dispositivo

  • Mostrano in lsusb come Bus 010 Device 004: ID 18d1:dddd Google Inc..
  • Creato/modificato /etc/udev/rules.d/51-android.rules e aggiunto SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666" (e diverse altre combinazioni di attributi qui).
  • Riavviato udev tramite sudo service udev restart.
  • server ADB riavviato tramite adb kill-server; adb start-server`.
  • Provato tutte le porte USB sul PC.
  • Provato con un altro cavo USB.
  • PC e tablet riavviati.

Una cosa strana è che, anche se svuoto /etc/udev/rules.d/51-android.rules file e riavviare il daemon udev, adb rileva ancora il mio Nexus 5 telefono.

Modifiche mi ricordo che ho fatto prima di questo problema è iniziato ad accadere:

  • Iniziato con Android Studio invece di Eclipse (anche se sto usando lo stesso ADK) e gli strumenti)
  • aggiornato Ubuntu alla versione più recente 14.04 (forse qualche variazione/problema udev?)

Eventuali ulteriori suggerimenti sono benvenuti, grazie in anticipo.


EDIT: Quando si esegue lsusb -v come suggerito nei commenti, posso vedere questa descrizione:

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

mentre il Nexus 5 mostra come

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

EDIT: I tablet funzionano perfettamente tramite ADB su altri computer (Windows e Linux). Quindi deve essere un problema con la mia scatola.


EDIT: Come suggerito nei commenti, ho provato ADB in modalità TCP e funziona bene. Dopo aver eseguito dmesg posso vedere il sistema sta cercando di caricare il driver di Windows per ADB utilizzando 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' 

Questo messaggio non mostra sulle altre macchine Linux in cui ADB funziona bene tramite USB.

+4

Informazioni sul voto di chiusura: leggere le [FAQ] (http://stackoverflow.com/help/on-topic). La domanda è perfettamente valida per StackOverflow. – m0skit0

+0

L'ho avuto ieri e l'ho risolto passando da USB a Camera e viceversa (l'avviso appare nella barra di stato quando lo colleghi). Era l'unico problema ed è successo all'improvviso. – Opiatefuchs

+0

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

risposta

1

Poiché gli stessi dispositivi funzionano su altri PC, è già possibile escludere problemi hardware dal lato dei tablet.Ulteriori cose da controllare sono:

  • permessi USB del PC: Anche se gli altri dispositivi funzionano, si potrebbe ancora avere autorizzazioni insufficienti per accedere alle compresse utilizzando adb. Le regole di udev che hai menzionato sono specifiche del fornitore e talvolta anche specifiche del dispositivo. L'unico modo per escludere le autorizzazioni come problema è avviare adb come utente root. adb forge un demone, quindi devi uccidere qualsiasi istanza di adb prima di tentare di farlo:
    $ pkill adb
    $ sudo adb devices
    Se il dispositivo compare nell'elenco, devi regolare le regole di udev. Temporaneamente, puoi continuare ad utilizzare adb normalmente - si connetterà al servizio che ora è in esecuzione come root e quindi funziona come previsto.
  • Problemi di driver: nel menu dello sviluppatore del tablet, è possibile selezionare "ad over over TCP" come opzione. Abilitalo e then connect to it from your PC. Se funziona, il bridge di debug stesso va bene e la connessione USB deve quindi essere la fonte del problema. Possiamo già escludere un cavo difettoso, perché il dispositivo si presenta in lsusb e altre funzionalità funzionano come previsto. L'esecuzione di dmesg dovrebbe fornire le informazioni richieste per risolvere il problema, probabilmente è un driver di periferica che interferisce. Prova a scaricarlo utilizzando rmmod/modprobe.
0

Una differenza dal 12.10+ è il supporto MTP. So che 14.04 lo usa automaticamente non appena viene collegato un telefono. Questo dovrebbe essere più veloce e più semplice di "Mass Storage". Forse ti stai intromettendo e dovresti trovare un modo per disabilitarlo dal PC o dal dispositivo?

+0

Grazie, già provato. MTP non funziona correttamente in questi tablet. Quando lo attivo, non viene nemmeno visualizzato sul bus USB. – m0skit0

Problemi correlati