domingo, 8 de julio de 2012

Conectar Ice Cream Sandwich con Ubuntu 12.04 LTS


Bueno, después de idas y vueltas, pude leer el filesystem de un Samsung Nexus S.


Primero que nada, hay que asegurarse que la conexión del dispositivo está configurado como "MTP".
Luego, arranca la magia;


Ahora hay dos opciones
  • Primera
sudo apt-get install libusb-dev
Luego, descargar la última versión de la biblioteca MTP para linux libmtp, descargarla en la carpeta personal o donde quieran, e instalarla

cd libmtp-1.1.2
./configure --prefix=/usr
make
sudo make install
Conectar el dispositivo android, y debería montarselos de forma automática.
Esa fue fácil. El problema es que por defecto ubuntu no trae instaladas las bibliotecas de manejo de MTP.
  • Segunda
Hay que instalar las herramientas necesarias:
sudo apt-get install mtp-tools mtpfs

Después, con el teléfono el el USB, es necesario correr las siguientes sentencias;
mtp-detect | grep idVendor
mtp-detect | grep idProduct

Abrir, otra terminal y ejecutar el siguiente comando:
gksu gedit /etc/udev/rules.d/51-android.rules
Eso abrirá un editor de texto, donde tendrán que agregar las siguientes líneas;
SUBSYSTEM=="usb"
ATTR{idVendor}=="VENDORID"
ATTR{idProduct}=="PRODUCTID", MODE="0666"
VENDORID y PRODUCTID son los que sacamos de la consola.
Salvar el archivo, y desconectar el teléfono.


Abrir nuevamente la consola, y ejecutar:
sudo service udev restart
sudo mkdir /media/GalaxyNexus
sudo chmod a+rwx /media/GalaxyNexus
sudo adduser USUARIO fuse
Donde USUARIO es el nombre que aparece arriba de la consola, a la izquierda del "@" (tu usuario).
Paso siguiente, escribir gksu gedit /etc/fuse.conf, y se abrirá otro editor de texto, donde hay que descomentar la última línea para dar los permisos necesarios.
#user_allow_other, sacar el #.

Salvar los cambios, y reinicar.
Para finalizar, es necesario agregar a la lista de comandos:
android-connect
android-disconnect

Esto, escribiendo en el terminal:
echo "alias android-connect=\"mtpfs -o allow_other /media/GalaxyNexus\"" >> ~/.bashrc
echo "alias android-disconnect=\”fusermount -u /media/GalaxyNexus\"" >> ~/.bashrc
source ~/.bashrc
Increíblemente, enchufé un iPhone y lo reconoció sin mayores inconvenientes...
Lo increíble es que en un android que está basado en linux, se tenga que hacer toda esa triquiñuela y no lo traiga implementado de forma nativa.

No hay comentarios:

Publicar un comentario