2014-11-19 17 views
11

Ho un problema molto strano sulla mia macchina Ubuntu quando provo a eseguire il comando fastboot.fastboot e adb non funzionano con sudo

quando corro:

fastboot devices

ottengo

no permissions fastboot

Così ho eseguito il comando con i permessi adminidtrator:

sudo fastboot devices

E allora ottengo il risultato

sudo: fastboot: command not found

Come può essere? Ho la directory nel mio PERCORSO e tutto funziona correttamente senza sudo.

+0

chmod + x? Ancora 5 da fare ... Ho finito. –

risposta

28

Invece di costringere i permessi tramite sudo ogni volta che è necessario eseguire fastboot, è possibile risolvere definitivamente il problema:

  1. utilizzare lsusb per identificare il dispositivo USB VendorID
  2. configurare udev per impostare le autorizzazioni appropriate quando il dispositivo è collegato
  3. profitto!

Come bonus, verrà risolto anche per adb.

Per esempio, nel mio caso (per 'Megafon SP-A20i'): correzione

$ fastboot devices 
no permissions fastboot 
$ sudo fastboot devices 
[sudo] password for kaa: 
MedfieldA9055F28 fastboot 
$ 

Let:

In primo luogo, abbiamo bisogno di identificare il dispositivo:

a) sguardo per numero di bus USB (mod: so che il dispositivo è Intel-based uno)

$ fastboot -l devices 
no permissions   fastboot usb:1-1.2 
$ lsusb |grep 001 |grep -i intel 
Bus 001 Device 044: ID 8087:09ef Intel Corp. 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub 
$ 

b) cercare altri Devic Intel es:

$ lsusb |grep 8087 
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub 
Bus 001 Device 044: ID 8087:09ef Intel Corp. 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub 
$ 

hub non sono smartphone definitivamente, in modo - vendorID USB abbiamo bisogno è "8087".

In secondo luogo, configurare udev (è necessario sostituire il valore "idVendor" con il vostro):

$ sudo sh -c "echo '# Megafon SP-A20i' >> /etc/udev/rules.d/51-android.rules" 
$ sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\", MODE=\"0666\", GROUP=\"plugdev\"' >> /etc/udev/rules.d/51-android.rules" 
$ sudo service udev restart 
udev stop/waiting 
udev start/running, process 1821 
$ 

In terzo luogo, ri-collegare il dispositivo per consentire udev per eseguire la sua magia.

Controllo finale:

$ fastboot -l devices 
MedfieldA9055F28  fastboot usb:1-1.2 
$ adb devices 
List of devices attached 

$ fastboot reboot 
rebooting... 

finished. total time: 0.253s 
$ sleep 90 
$ adb devices 
List of devices attached 
MedfieldA9055F28 device 

$ 

Voila!

10

È possibile utilizzare

sudo $ dispositivi (che fastboot)

+1

Grazie. Ha funzionato come un fascino. Come posso risolvere questo però? Lavorare normalmente come "sudo fastboot devices"? – nlmm01