UMI

Como algunos usuarios sabréis, para utilizar el SDK de Android es necesario tener instalados los drivers de nuestro terminal en el ordenador, y cada sistema operativo realiza esta tarea de forma diferente. En el caso de Windows, esto depende del fabricante, algunos como Samsung requieren del uso de su programa gestor de contenidos, en este caso Kies, para descargar y actualizar los drivers existentes. Otros fabricantes dejan esta tarea a cargo de Microsoft y ésta desde Windows Update detecta qué fabricante y terminal tenemos y realiza automáticamente la descarga e instalación de controladores. Android está basado en Linux, y como tal, es mucho más sencilla la tarea, puesto que la mayoría de terminales son reconocidos directamente por el kernel (que es Linux, GNU el sistema operativo que lo utiliza) y sólo hemos de especificar un archivo para que haga uso del controlador en concreto. Vamos a explicaros cómo se hace, independientemente del terminal que tengáis y la distribución de Linux así como entorno de escritorio, sirve para todos y todas.

En primer lugar debemos crear un archivo en donde colocaremos los drivers, que van a ser simples lineas de texto con unas órdenes muy concretas. Abrimos una terminal (según nuestra distro y entorno estará en un menú u otro) y tecleamos:

sudo touch /etc/udev/rules.d/51-android.rules

Aviso, si hacéis copia-pega desde esta entrada del blog hacia la terminal de vuestro ordenador, no uséis los atajos de teclado, al menos al pegar allí, porque dentro de una terminal no funcionan, usad el clic derecho del ratón. A continuación le cambiamos los permisos al archivo, para que sea ejecutable:

sudo chmod a+rx /etc/udev/rules.d/51-android.rules

 

Sólo nos quedará ir incluyendo las líneas de texto según nuestro modelo de terminal, hemos de obtener dos códigos, USB Vendor ID y el ID del modelo, Idproduct.

Vamos a probar con dos modelos, Sony Xperia Neo y Nexus S. conectamos el móvil al ordenador, abrimos una terminal y tecleamos lsusb -v.

El Sony Xperia Neo nos devuelve esto (entre los demás datos de nuestro hardware o cosas enchufadas por usb):

idVendor 0x0fce Sony Ericsson Mobile Communications AB
idProduct 0x6156

Podemos filtrar sobre todo el listado: lsusb -v | grep Sony

Bus 001 Device 002: ID 0fce:6156 Sony Ericsson Mobile Communications AB
idVendor 0x0fce Sony Ericsson Mobile Communications AB

Probamos con el Nexus S, mismo procedimiento:

idVendor 0x18d1 Google Inc.
idProduct 0x4e22

Sorpresa, no figura como Samsung. Si delimitamos la búsqueda a Google:

Bus 001 Device 003: ID 18d1:4e22 Google Inc.
idVendor 0x18d1 Google Inc.

Una vez sabemos los ID que necesitamos, abrimos el archivo que hemos creado previamente. Para entornos Gnome usamos Gedit, para entornos KDE, Kate, para entornos Xfce, Mousepad. O podemos usar Vi que es multientorno. Aunque nada impide que en Gnome usemos Kate por ejemplo, sólo que no vendrá de serie. Una vez escogido el editor de texto, abrimos el archivo de marras:

sudo kate /etc/rules.d/51-android.rules

Se nos abrirá una ventana con el archivo en blanco, dentro pegamos lo siguiente:

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”xxxx”, ATTRS{idProduct}==”yyyy”, MODE=”0666″, OWNER=”faqsandroid”

Lo que está en negrita debemos sustituirlo por los valores que hemos apuntado antes pero quitando el prefijo 0x (cero equis), y en vez de faqsandroid debemos poner nuestra cuenta de usuario. Si no funciona podemos probar a poner root.

Ejemplos:

Sony Xperia Neo

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”0fce”, ATTRS{idProduct}==”6156”, MODE=”0666″, OWNER=”faqsandroid”

Nexus S

SUBSYSTEMS==”usb”, ATTRS{idVendor}==”18d1”, ATTRS{idProduct}==”4e22”, MODE=”0666″, OWNER=”faqsandroid”

Quedará tal que así:

Cerramos la ventana (guardamos) y reiniciamos el ordenador.

Abrimos una terminal y nos vamos hasta una carpeta concreta:

cd /home/faqsandroid/android/platform-tools

Allí dentro tecleamos ./adb devices. Si lo hemos hecho correctamente nos saldrá un listado de los terminales conectados por usb en ese momento. En el caso de que nos salga esto:

List of devices attached
???????????? no permissions

Lo arreglamos de la siguiente forma:

sudo su

./adb kill-server

./adb start-server

Si todo va bien, nos irá indicando esto:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *

Repetimos

./adb devices

Si nos indica el terminal que detecta, tecleamos exit y cerramos la terminal.




Geek a jornada completa. Adicto a las NNTT, lectura, puzzles (Sudoku, Rubik...), fotografía, telefonía, videojuegos e informática. Usuario feliz de Android y curioso de iOS respecto a móviles, y en PC, Windows por obligación y Linux por devoción, mentalidad curiosa e inconformista.

4 comentarios

  1. Hola,muchas gracias por tu explicación. Tengo un Huawei y estoy intentando ver una base de datos que he creado con una aplicación que desarrollé, pero no he podido ver el dispositivo por el DDMS. He seguido tu tutorial pero sigo sin poder ver el dispositivo. Esto es lo que me muestra
    Bus 001 Device 004: ID 12d1:1035 Huawei Technologies Co., Ltd. U8120
    idVendor 0x12d1 Huawei Technologies Co., Ltd.
    iManufacturer 2 Huawei Incorporated
    El fichero 51-android…
    SUBSYSTEMS==”usb”, ATTRS{idVendor}==”12d1″, ATTRS{idProduct}==”1035″, MODE=”0666″, OWNER=”usuario”
    De antemano muchas gracias por tu ayuda.

  2. root@debian:/home/nestoguzman# cd /home/faqsandroid/android/platform-tools
    bash: cd: /home/faqsandroid/android/platform-tools: No existe el fichero o el directorio

    esto me da, esa directorio era de crearla antes o como esta ese rollo?

Deja una respuesta