Ubuntu nie wykrywa mojego urządzenia z Androidem

34

Jestem nowy na Androida. Właśnie pobrałem i zainstalowałem Android SDK. Teraz, gdy uruchamiam aplikację z Eclipse, moje urządzenie nie jest wykrywane. Poszukałem go i wychowałem to jako moje rozwiązanie, ale to też nie zadziałało.

Oto 51-android.rules

SUBSYSTEMS=="usb", ATTR{idProduct}=="0bb4",  ATTR{idProduct}=="0c03", MODE="0666", GROUP="plugindev", OWNER="<username>"

Następnie ponownie uruchomiłem laptopa i uruchomiłem polecenie:

username@laptopname:~/Android/adt-bundle/sdk/platform-tools$ adb devices

Otrzymuję wynik:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
????????????    no permissions

EDYTOWAĆ

crazydeveloper@crazydeveloper:~$ lsusb
Bus 002 Device 004: ID 0bb4:0c03 HTC (High Tech Computer Corp.) 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 04f2:b337 Chicony Electronics Co., Ltd 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
crazydeveloper@crazydeveloper:~$ ls -l /dev/bus/usb/004/
ls: cannot access /dev/bus/usb/004/: No such file or directory
crazydeveloper@crazydeveloper:~$ 

Edycja: 2

Po przesłaniu odpowiedzi oto wynik, który otrzymałem:

crazydeveloper@crazydeveloper:~$ ls -l /dev/bus/usb/002
total 0
crw-rw-r--  1 root root    189, 128 May  7 09:45 001
crw-rw-r--+ 1 root root    189, 129 May  7 09:45 002
crw-rw-rw-  1 root plugdev 189, 130 May  7 09:48 003

Używam Micromax Canvas 2.2 A114 - Android Wersja 4.2.2

Proszę pomóż mi. Dzięki.

Saiyan Prince
źródło
2
Czy w Androidzie jest włączone debugowanie USB?
Jon Hanna
Tak. jest włączony.
Saiyan Prince
1
Powinien to być PODSYSTEM, liczba pojedyncza.
pakman

Odpowiedzi:

42

OK tutaj są wszystkie kroki, aby to zadziałało. Miałem problemy ze wszystkimi odpowiedziami, które znalazłem w Internecie, drobiazgi wszędzie bez określonego zamówienia i żadnego pojedynczego działającego rozwiązania (z systemem Android Studio, Jmonkey 3D i Ubuntu 14.04)

Jeśli urządzenia adb pokazują urządzenie z Androidem jako ????????? (bez uprawnień) postępuj zgodnie z tymi instrukcjami:

  1. utwórz plik /etc/udev/rules.d/51-android.rules

    sudo gedit /etc/udev/rules.d/51-android.rules
    
  2. skopiuj i wklej zawartość poniżej:

    SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666", GROUP="plugdev"    
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666", GROUP="plugdev"  
    SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666", GROUP="plugdev" 
    
  3. Uruchom następujące polecenie, aby zmienić uprawnienia do pliku:

    sudo chmod a+r /etc/udev/rules.d/51-android.rules
    
  4. podłącz swój telefon przez usb i uruchom następujące polecenie:

    lsusb
    

    Poszukaj swoich urządzeń Przykład (Nexus 5):

    Magistrala 003 Urządzenie 074: ID 18d1 : 4ee7 Google Inc.

    W przypadku Nexusa 5 identyfikator dostawcy to 18d1 , mój jest na magistrali „ 003 ”. Jeśli nie widzisz zmiany po podłączeniu urządzenia do lsusb , być może kabel USB jest tylko do ładowania.

  5. Teraz ponownie załaduj reguły za pomocą następujących poleceń:

    sudo udevadm control --reload-rules
    sudo service udev restart
    sudo udevadm trigger
    
  6. Sprawdź, czy urządzenie umożliwia teraz dostęp do grupy użytkowników plugdev

    ls -l /dev/bus/usb/<bus number from step 4>
    

    Przykład:

    ls -l /dev/bus/usb/003
    crw-rw-rw- 1 root plugdev 189, 329 Jul  3 18:23 074
    
  7. Uruchom urządzenia adb, aby potwierdzić, że uprawnienia są prawidłowe i ciesz się!

Uwaga: jeśli nie utworzyłeś grupy plugdev i nie dodałeś do niej swojej nazwy użytkownika (jeśli odmowa dostępu poprzedza „sudo” następujące polecenia):

  1. Dodaj grupę plugdev:

    groupadd plugdev
    
  2. Dodaj swoją nazwę użytkownika do grupy plugdev (useradd -G {nazwa-grupy} nazwa użytkownika):

    useradd -G plugdev billy
    
  3. Zrestartuj udev (może być konieczne wylogowanie i ponowne zalogowanie, aby zaktualizować grupę użytkowników):

    sudo service udev restart
    
JJB
źródło
@EvanCarrol: najlepiej jest dokonać zmiany jako kroku 0 przed rozpoczęciem, a nie w środku (przepraszam za odrzucenie, ale powoduje, że odpowiedź jest mniej jasna zamiast jaśniejsza): /
Fabby
Ta odpowiedź działa dobrze. Po aktualizacji do 15.10 muszę to zrobić po każdym ponownym uruchomieniu. Działa świetnie.
Jesteśmy Borg
Czy mogę to nazwać Seksowną odpowiedzią ... dzięki mojemu przyjacielowi dzień ...
Tushar Pandey
5

Spróbuj grupy plugdevzamiast plugindev. Następnie uruchom ponownie udev:

sudo udevadm control --reload-rules
sudo service udev restart

Jeśli to nie zadziała, dowiedz się, gdzie dokładnie Twoje urządzenie jest połączone z lsusb. Następnie sprawdź uprawnienia:

ls -l /dev/bus/usb/YOUR_USB_BUS_NO/

Fakt, który lsusbdał nam:

Bus 002 Device 004: ID 0bb4:0c03 HTC (High Tech Computer Corp.)

oznacza, że ​​telefon komórkowy jest podłączony do magistrali 002 jako urządzenie 004. Dlatego obiekt udev utworzył urządzenie /dev/bus/usb/002/004.

Pokaż nam uprawnienia urządzenia za pomocą polecenia:

ls -l /dev/bus/usb/002/004

Jako tymczasowe obejście tego problemu możesz sprawić, że urządzenie będzie czytelne / zapisywane na świecie za pomocą tego polecenia (upewnij się, że telefon jest podłączony):

sudo chmod 666 /dev/bus/usb/002/004

Następnie spróbuj adb devicesponownie.

Zauważyłem też, że pod koniec reguły udev masz OWNER="<username>". Naprawdę to zastąpiłeś OWNER="crazydeveloper", prawda?

Twoje uprawnienia są w porządku. udev podniósł urządzenie i ustawił uprawnienia na 666, a grupę na plugdev. Z jakiegoś powodu nie ustawił właściciela na crazydevelopera, ale to nie jest tak ważne.

Upewnij się, że jesteś członkiem grupy plugdev. Użyj tego polecenia:

sudo useradd -G plugdev crazydeveloper

Następnie wyloguj się, odłącz telefon, zaloguj się ponownie, podłącz go i spróbuj adb devicesponownie. Daj znać, co się dzieje.

surfowanie
źródło
proszę zobaczyć pytanie teraz ...
Saiyan Prince
sprawdź pytanie teraz.
Saiyan Prince
Also I noticed that at the end of the udev rule you have OWNER="<username>". You did actually replace that with OWNER="crazydeveloper", didn't you ?Pomogło mi. Dzięki :): D
Yash Sodha
Postępowałem zgodnie z twoją radą, ale nie zadziałało to dla mnie. Zadziałało przełączanie opcji USB dostarczonych przez urządzenie, spróbuj przełączyć się na PTP z MTP. Ten działał dla mnie.
George D
4

Musisz zmienić 2 rzeczy:

  1. Zmień pierwszy „ATTR {idProduct}” na „ATTR {idVendor}” w pliku 51-android.rules.

  2. Uruchom następujące polecenia z terminala:

    sudo ./adb kill-server
    sudo ./adb start-server
    sudo ./adb devices
    
użytkownik351123
źródło
3

Może to trywialny błąd, jak widzę w 51-android.rules podwoiłeś parametr idProduct i nie ma idVendor, spróbuj prostej zmiany nazwy.

użytkownik1239927
źródło
1

Moje urządzenie z Androidem miało debugowanie USB, które wydawało się być problemem, więc przeszedłem do ustawień programisty i wyłączyłem go. Podłączyłem kabel USB, a następnie pojawiło się okno, które pozwoliło mi włączyć pamięć USB. To sprawiło, że mój Ubuntu 14.04 wykrył urządzenie z Androidem. Nie wiem, czy wszystkie urządzenia mają to ustawienie, ale rozwiązało to mój problem, podczas gdy wypróbowałem wszystkie inne metody. Dziękuję Ci

Stamos
źródło
0

Miałem ten sam problem z urządzeniem z Androidem (HTC one (M7)) w Ubuntu 14.04. Ponownie uruchomiłem system Windows 7.0. Znalazłem tam również ten sam problem. Podczas wyszukiwania znalazłem następujący link. http://www.makeuseof.com/answers/why-is-my-windows-7-laptop-not-detecting-any-android-devices/

Wybrałem * # 7284 #, jak sugeruje Gerry Anthony w tym linku. I działało w systemie Windows. Uruchomiłem ponownie na Ubuntu 14.04 i moje urządzenie z Androidem zostało wykryte.

Praveen
źródło
Sprawdź także następujące elementy. Napraw problemy z wykrywaniem USB na Androidzie
Praveen
0

Po wypróbowaniu każdego z potencjalnych rozwiązań opisanych powyżej oraz w innych wątkach z innych forów odkryłem, że powodem, dla którego mój HOX postanowił nie komunikować się z moim laptopem (14.04), było prostsze, mechaniczne. Przewód USB do gniazda micro USB słuchawki był uszkodzony. Dzięki zastosowaniu przewodu o / e, który zawsze wydawał się sztywniejszy i miał mniejsze szanse na przetrwanie niż zwykły przewód zakupiony w AsDa, wznowiono normalną obsługę.

Następnie wykorzystano DMM, aby pokazać, jak dokładnie doszło do tego stanu rzeczy: rezystancja pasma zasilania + 5 V w tym przewodzie wzrosła do punktu, w którym odczyt był prawie otwarty. Wartość R o / e, HTC oznaczony linią ołowiu + 5 V był tylko nieco bardziej odporny niż byłby martwy zwarcie i nie był zbyt dobrze na działaniu lub układzie micro USB nie, nie mogłem zrozumieć, jak to wpłynęło transfer danych może więc jedynie zakładać, że szyna zasilająca na płycie we / wy w jednym lub obu urządzeniach korzysta z części + 5 V jednego lub obu gniazd również do przesyłania danych.

To, czego się tutaj nauczyłem: najpierw sprawdź prostsze rzeczy, zanim wyciągniesz włosy z niczego z zainstalowanym oprogramowaniem, a wszystko to zostało przywrócone do pierwotnego stanu, zanim pojawiła się usterka!

HTC - 1, dostawca kabli stowarzyszonych mleczarni - 0.

użytkownik171850
źródło
-1

Powinno to wyglądać tak:

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c03", MODE="0666"
Yinkai Chen
źródło
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, zostaw komentarz pod jego postem - zawsze możesz komentować własne posty, a gdy będziesz mieć wystarczającą reputację , będziesz mógł komentować każdy post .
Fabby
@Fabby To wygląda na próbę odpowiedzi na pytanie ..
Seth