Como se describe en Configuración de ADB para el Nexus 4 en Ubuntu 11.10 , en Linux es importante aparecer en cualquiera de las dos listas ~/.android/adb_usb.ini
(basado en el usuario) o /etc/udev/rules.d/51-android.rules
. La sintaxis de ambos archivos difiere: mientras que en el primer caso basta con añadir el identificador de proveedor ( echo 0x18d1 >> ~/.android/adb_usb.ini
para un Nexus 4), la entrada de la regla UDEV es un poco más compleja. Los detalles se pueden encontrar en la pregunta vinculada (o más bien sus respuestas).
En el caso de krlmlr, no se trataba de un "o", sino que aparentemente se necesitaban ambas partes (nunca me había pasado, y ni siquiera había utilizado el adb_usb.ini
-- pero eso no significa que no existan esas excepciones). Al añadir el dispositivo en ambos lugares (que no puede hacer daño de todos modos), el dispositivo finalmente apareció.
Dos observaciones adicionales: Después de cambiar las reglas de UDEV, es necesario reiniciar el servicio UDEV para aceptar los cambios. En Ubuntu, esto se puede hacer a través de sudo service udev restart
(alternativamente, puede forzar a UDEV a recargar sus reglas usando udevadm control --reload-rules
). Si su dispositivo sigue sin ser detectado, lo más probable es que estuviera enchufado mientras realizaba los cambios; entonces deberá desconectar y volver a conectar el cable USB. Por supuesto, Depuración USB debe estar activado en su dispositivo :)
Ejemplo
por krlmlr
Basado en la siguiente salida de lsusb
para el dispositivo Android en cuestión:
Bus 002 Device 009: ID 2207:0010
era necesario crear /etc/udev/rules.d/51-android.rules
como root
con el siguiente contenido:
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", MODE="0660", GROUP="plugdev"
y para crear ~/.android/adb_usb.ini
con el siguiente contenido:
0x2207
El primero es necesario para permitir a los usuarios regulares (que pertenecen al grupo plugdev
) para acceder al dispositivo. Tenga en cuenta la máscara de permiso 0660
en lugar del frecuentemente visto 0666
que es más débil desde el punto de vista de la seguridad (el segundo permite el acceso "mundial", mientras que el primero sólo permite el acceso "de usuarios y grupos"). La segunda es necesaria para que adb
intentos de hablar con el dispositivo en primer lugar. Después de eso:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
adb kill-server
y desenchufa+conecta tu dispositivo Android. Entonces,
adb devices
finalmente mostró el dispositivo Android.
Comentario de Izzy:
Para mi LG Optimus 4X HD , bastaba con añadir una línea a /etc/udev/rules.d/51-android.rules
:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61a6", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
Tal vez el SYMLINK
hace la diferencia de que no necesitaba la entrada extra en ~/.android/adb_usb.ini
.
1 votos
Es posible que desee comprobar Configuración de ADB para el Nexus 4 en Ubuntu 11.10 . Tal vez haya omitido el paso de dar a conocer su dispositivo :)
0 votos
@Izzy: Añadiendo el ID del fabricante a la
adb_usb.ini
solucionó el problema de inmediato. Muchas gracias. ¿Te importa escribir una respuesta para que pueda aceptarla?0 votos
Claro, lo acabo de hacer. Como ya tenemos los detalles en la pregunta enlazada, la mantuve más general. Me alegro de que se haya resuelto tan fácilmente -- pero por otro lado, eso era justo lo que esperaba :) ¡Que lo disfrutes! // Por cierto, para otras máquinas para configurar fácilmente, también podría estar interesado en ¿Existe una instalación mínima de ADB? -- que fue lo que finalmente me convenció de hacerlo: Sólo tienes que copiar unos pocos archivos, y ya está. No hay necesidad de todo el SDK si no eres un dev :)
0 votos
@Izzy: En Ubuntu, puedo instalar
adb
utilizandoapt-get install android-tools-adb
. No es necesario copiar archivos ni ajustarPATH
ajustes. El paquete en sí es diminuto y sólo contieneadb
y un par de archivos necesarios.0 votos
Lo sé (ya que yo también uso Ubuntu). Pero también he oído que lleva consigo un montón de dependencias -- por lo que he recurrido a la "variante de la copia". Aquí los ejecutables se compilan estáticamente, por lo que siempre funciona sin importar la distribución.
0 votos
@Izzy: Cierto, la dependencia de zlib1g romperá libxml2 y texlive-binaries. Hm... Pesado.
0 votos
¿Ves? Ahí empieza. Así que en lugar de juguetear con dependencias complicadas para arreglar una "simple instalación de apt-get", al final resulta mucho más sencillo descargar y desempaquetar un archivo manualmente :)
0 votos
@Izzy: Espera, estaba equivocado. Sólo rompería libxml2 o texlive-binaries si estos paquetes son muy viejo. En la práctica, siempre me decantaría por el
apt
a menos que una instalación intente desinstalar la mitad de mi sistema, pero ese no es el caso. De todos modos, ambos métodos para obtener los archivos son válidos y funcionan la mayoría de las veces :-)