Ver Mensaje Individual
  #1  
Viejo 11/12/10, 18:49:22
Array

[xs_avatar]
taopaipai taopaipai no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: sep 2010
Localización: Wanted
Mensajes: 1,244
Modelo de smartphone: Galaxy S I-9000, SM-N9005
Tu operador: Movistar
Hilo específico GALAXY S y LINUX

INTRO
Entre varios compañeros linuxeros (intronauta, trompe y jgnomero) se ha planteado la conveniencia de abrir un hilo que centralice la información disponible para sistemas linux en relación con nuestros Galaxy S.

Como introducción al tema, en este primer post, trataré de dejar claras las acciones más básicas que cabe hacer en Ubuntu (10.04 y superiores) para empezar a manejarnos perfectamente con el Galaxy.

Quiero dejar sentado desde ahora que van dirigidas casi exclusivamente a aquellas personas iniciadas en Ubuntu que quizás se lleven de entrada la impresión equivocada de que necesitan recurrir a otras plataformas.

En Ubuntu el dispositivo se encuentra completamente soportado de forma nativa, sin más requisitos. Por tanto, aunque acabes de empezar en este mundillo no tienes nada que temer.

Sólo existía hasta hace poco una lamentable excepción a esto: un programa fiable para flashear roms. Pero de la mano de Heimdall el frotar se va a acabar.

Considero, además, que con el flasheo tendríamos una ventaja suplementaria. En ubuntu se ve minimizado el riesgo que puede plantearse por ejemplo en Windows, donde procesos asociados a software de origen diferente y sin relación entre sí (Odin, Kies, etc...) pueden interferir de una forma perjudicial en el mismo. Aunque ya sabéis que no existe nada infalible y menos en estos temas...

Voy a dividir el post en dos partes. La primera contiene información casi intranscendente. Mencionaré un par o tres de las acciones más habituales y simples que todos realizamos a diario.

Los que ya conocéis Ubuntu deberíais pasar directamente a la segunda. En ella intentaré resumir los pasos que hay que dar para dejar Ubuntu preparado en caso de que queramos flashear.
I

(Click para mostrar/ocultar)
Si acabáis de instalar Ubuntu 10.04 o 10.10 y simplemente conectáis vuestro Galaxy mediante usb, éste será automáticamente detectado sin más.

ALMACENAMIENTO MASIVO:
Activar en el Galaxy la opción almacenamiento masivo (si actualizáis a Froyo recordad que cambia con respecto a Eclair: Conexiones inalámbricas> Ajustes USB> Almacenamiento masivo). Desplegar la barra de notificaciones del Galaxy y activar definitivamente la conexión con Eclair. En Froyo esta última confirmación aparece automáticamente. La sd interna y la externa (si la tenéis) se montarán al instante.

Si hubiera algún tipo de problema (cosa que no me ha pasado nunca) podéis montar/desmontar manualmente con los comandos mount y umount.

Suponiendo que tuvierais un disco tipo sda y teniendo en cuenta que el formato de las SD es Fat32 podríamos montarlas así:
Código:
mount -t vfat /dev/sdc /media/SGS1
mount -t vfat /dev/sdb /media/SGS2
BLUETOOTH:
La aplicación que viene por defecto con Ubuntu es suficiente, aunque sea más rudimentaria que otras. Si no os complace, podéis probar blueman que es más completa.
Código:
sudo apt-get install blueman
O mediante Synaptic
TETHERING:
Para utilizar el Galaxy como router 3g y compartir la conexión a internet con Ubuntu a través de usb o de wifi tampoco debemos rompernos los cuernos.

Para usb:
Ajustes> Conexiones inalámbricas> Anclaje a red (Froyo)
Ajustes> Acerca del teléfono> Ajustes USB> Internet PC (Eclair)
Si por curiosidad hacéis iwconfig en un terminal veréis que os aparecerá como usb0. Una vez estéis conectados con ifconfig podéis comprobar los datos de la conexión.

Network-Manager lo reconoce automáticamente 'Auto usb0 conexión establecida' y ya podéis navegar. Fin de la historia. No hemos tenido que configurar nada.

Si utilizáis Wicd como gestor de redes os adelanto que hasta el momento no tiene soporte para dispositivos 3g. Así que en tal caso, o en el caso de que por lo que fuese no se os iniciara la conexión con cualquier otro gestor, la solución es tan fácil como hacer en un terminal:
Código:
sudo dhclient usb0
Para wifi:
Conexiones Inalámbricas> AP móvil> AP móvil (Froyo)
Conexiones Inalámbricas> Ajustes de enrutador> AP móvil (Eclair)

Yo lo probé en su momento con Network-Manager y también con Wicd que son los gestores de redes más populares y no se me presentó ningún problema para conectarme. Ni con los ajustes de red abierta ni con WPA2.

Podríamos proseguir con temas de sincronización, acceso remoto, herramientas de desarrollo o, qué sé yo, programas con los que hacer walpapers, hay quien incluso ha hecho convivir ubuntu con android directamente en el Galaxy mediante chroot (de dudosa utilidad la verdad)... pero son cosas que probablemente se salen del planteamiento inicial que no es otro que veáis que en ningún momento se ha hecho obligatorio instalar nada para manejar el Galaxy con Ubuntu a la perfección.
II
Aquí vamos a dejar Ubuntu a punto de caramelo para flashear. Obviamente es algo más avanzado que lo anterior.
ANDROID-SDK:
Es casi obligatorio poder contar con algunas herramientas de sdk. No sólo porque queramos flashear. Mediante adb por ejemplo podría interesarnos hacer otras cosas. Aunque en este caso, de caras al flasheo, lo que más nos interesa es poder poner el Galaxy en modo download desde el ordenador. Nada más. No va a ser preciso descargar e instalar toda la plataforma o componentes más avanzados. Creedme, esto es más fácil hacerlo que decirlo así que no os asustéis.

1) Descargamos el paquete para linux que encontraremos aquí:
http://developer.android.com/sdk/index.html

2) Activamos los repositorios partner:
Synaptic> Configuración> Repositorios> Otro software

Acordaos de Recargar.

3) Instalamos este paquete (no es imprescindible pero lo haremos por si las moscas otro día os da por hacer cosas más complicadas con android):
Código:
sudo apt-get install sun-java6-bin
O synaptic
4) Sólo si nuestra arquitectura es 64 bits además este:
Código:
sudo apt-get install ia32-libs
5) Descomprimimos el paquete que hemos descargado y copiamos o movemos la carpeta android-sdk-linux_x86 que viene dentro a nuestra /home.

6) Como a mí no me gusta tener carpetas visibles que contengan programas en mi /home, yo siempre las oculto. Si os gusta la idea renombráis la carpeta poniendo un punto delante: .android-sdk-linux_x86. (Haciendo CTRL+H ocultamos/desocultamos esas carpetas).

7) A partir de la versión 08 hemos de lanzar el manager sdk:
Código:
/hometuusuario/.android-sdk-linux_86/tools/android
8) Seleccionamos Available packages, le damos a Refresh y desplegamos las opciones de Android Repository, señalando Documentation for Android SDK y dándole por último a Install Selected:


8) Si se instalado correctamente en Installed packages deberia aparecer esto:


9) Vamos a crear una ruta permanente hacia los directorios donde están los ejecutables para invocar las herramientas que allí tenemos desde cualquier posición:
Código:
sudo gedit /hometuusuario/.bashrc
10) Añadimos estas dos líneas final del archivo, guardamos y cerramos:
Código:
export PATH=${PATH}:/hometuusuario/.android-sdk-linux_x86/tools
export PATH=${PATH}:/hometuusuario/.android-sdk-linux_x86/platform-tools
10) Sólo falta un pequeño detalle. Debemos definir las reglas por las que nuestro Galaxy va a ser reconocido por android. Esto se hace mediante udev como gestor de dispositivos que tiene el Kernel:

Primero creamos el archivo donde se encontrará la regla para udev:
Código:
sudo touch /etc/udev/rules.d/51-android.rules

Segundo
editamos:
Código:
 sudo gedit /etc/udev/rules.d/51-android.rules
Tercero añadimos la regla:
Código:
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"

Cuarto
guardamos y cerramos.

Y quinto le damos los permisos necesarios al archivo:
Código:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
11) Al conectar el Galaxy en modo depuración USB a Ubuntu podemos comprobar que realmente todo ha ido bien:

Código:
adb devices
Código:
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
10003082a1ca    device
Quien se lance a hacer una instalación en toda regla de android que teclee android en un terminal y siga alguno de los muchos tutoriales que ya existen o se pase por la web oficial.
HEIMDALL
Se trata de un programa multiplataforma (Linux, OSX y Windows). Se lo debemos a Benjamin Dobell. Pasó a una fase estable con su versión 1.0. Ésta no contaba todavía con un frontend y no permitía opciones como la repartición, cosas que a mí personalmente no me parecen esenciales o que impliquen que Heimdall 1.0 no siga siendo una alternativa a Odin muy potable.

Sin embargo desde hace unos días disponemos de la siguiente versión estable 1.1 que ya incluye esas y otras opciones y que debería como mínimo tentar a los todavía reacios.

No obstante, la nueva versión no está exenta de toda pega. La forma en que el programa ha pasado a entender la repartición implica hacer flasheos desde cero sin ningún tipo de paliativo. Es decir, que no puede llevarse a cabo si no se flashea prácticamente todo. Y cuando digo todo me refiero a que va a arramblar incluso con el bootloader, solicitándonos otro PBL y otro SBL, con los problemas que ello puede acarrear si no estamos seguros de cuáles son los correctos y pudiendo afectar así al famoso combo de los tres botones. Tampoco es que sea un drama pero de momento toca tener las cosas bien claras antes de reparticionar.

Pensad por otro lado que la repartición no es una condición necesaria para flashear, pero en cualquier caso siempre tendréis la opción de decidir con qué versión os quedáis mientras se vaya definiendo el desarrollo del programa.

Este es el hilo de desarrollo y os recomiendo que hagáis una lectura aunque sea en "modo scroll":
http://forum.xda-developers.com/showthread.php?t=755265

Y como no todo lo bueno está fuera de casa, aquí tenemos también un hilo específico abierto por nuestro compañero intronauta (siento que hayas tenido que soportarme más de la cuenta):
http://www.htcmania.com/showthread.php?t=157925

INSTALACIÓN:
Nos vemos obligados al escribir esto a diferenciar la instalación en una arquitectura 64 bits de otra de 32 bits.Es de esperar que la situación no tarde mucho en cambiar en beneficio de todos. En cuanto eso suceda actualizaré la información lo más rápido posible porque comprendo que para los nuevos el proceso puede parecer confuso.

64 bits:
(Click para mostrar/ocultar)
Existen repositorios disponibles pero todavía no está colgada la nueva versión. No obstante, lo menciono por si alguno quiere ir trasteando con la 1.0 mientras cuelgan la 1.1 o por si simplemente decide quedarse con la 1.0:
Código:
sudo add-apt-repository ppa:modycz/modycz-heimdall
Para la 1.1:
1) Verificad que tenéis instalada la siguiente librería:
libusb-1.0

Si no fuese así la instaláis. Yo no he necesitado actualizarla ni nada parecido.

2) Entramos en la página de descarga del autor y nos descargamos los dos paquetes que hay para linux (Heimdall 1.1.1 y Heimdall Frontend 1.1.1):
http://www.glassechidna.com.au/products/heimdall

3) Ahora tendréis dos paquetes .deb. Los instaláis con doble click en cada uno y a disfrutar Heimdall 1.1.1


32 bits:
(Click para mostrar/ocultar)
Yo le hecho así:

1) Abrimos synaptic e instalamos lo siguiente si no lo tenemos instalado:
*build-essential
*libusb-1.0-0-dev (por si acaso)
*libqt4-dev

2) Nos descargamos el paquete heimdall-1.1.1.tar.gz
Por si hubiera variaciones aquí dejo la localización https://github.com/Benjamin-Dobell/Heimdall/downloads

3) Extraemos únicamente estas 3 carpetas:
* heimdall
* heimdall-frontend
* libusb-1.0

Yo tengo en mi /home una carpeta para compilaciones llamada Programas. Así que en mi caso hubiera extraído las cuatro carpetas en ese directorio y por tanto mi ruta a ellas sería por ejemplo: /homemiusuario/Programas/heimdall.

Usaré mi ruta en los siguientes pasos solamente de ejemplo.

4) Intenté hacer la instalación contando con la librería libusb-1.0.6 que existe en los repos de Ubuntu 10.04 y el paquete libusb-1.0-0-dev. Pero al ir a compilar heimdall 1.1.1 me pedía que actualizase igualmente a la versión 1.0.8 y por si acaso he preferido también compilar libsub como propone el autor.

Ejecutaríamos estas cuatro acciones una después de la otra:
Código:
cd /home/miusuario/Programas/libusb-1.0
./configure
make
sudo make install
Y para salir de ese directorio:
cd
(Podéis ir copiando y pegando los comandos si queréis desde ./configure en adelante en vuestra ruta).

5) Procedemos al proceso de compilación e instalación de heimdall 1.1.1 Sustancialmente es lo mismo:
Código:
cd /home/miusuario/Programas/heimdall
./configure
make
sudo make install
cd
Ya hemos instalado Heimdall 1.1.1

Heimdall es plenamente funcional a partir de este momento, pero sin una GUI.

6) Compilamos heimdall-frontend como hemos hecho con heimdall y libusb, lo único que cambia es el primer comando qmake (asociado a qt4):
Código:
cd /home/miusuario/Programas/heimdall-frontend
qmake heimdall-frontend.pro
make
sudo make install
cd
Después del make os pedirá dónde queréis que instale el binario. Para no liaros más dadle a Enter: os lo habrá metido en /usr/local/bin.

Esto seguro que es menos complicado de lo que os pueda parecer.

Mi ordenador viejo es 32 bits y casi no lo uso. Probé a flashear un kernel con heimdall 1.1 y todo fue bien. Pero tengo que ser sincero, tampoco me he puesto a flashear como un loco con él. Quizás otros compañeros puedan ir confirmando que no detectan incidencias..

USO:
Para facilitar las cosas pondré dos ejemplos prácticos de cómo usar Heimdall. Tanto a través de su frontend como por línea de comandos.

Si queréis revisar todas las opciones de Heimdall basta con hacer:
Código:
heimdall .help
Para iniciar el frontend basta también con introducir en una terminal o mediante ALT+F2 lo siguiente:
Código:
heimdall-frontend
Quizás haya alguno a quien esto último le parecezca un coñazo. Entonces puede optar por añadir un lanzador de aplicaciones para Heimdall en el menú de Aplicaciones:

-En terminal o mediante ALT+F2 tecleamos:
Código:
alacarte


-Escojemos el submenú donde queremos incluir el lanzador de Heimdall. Por ejemplo en Herramientas del sistema. Y le damos a Elemento nuevo, apareciendo esto:



-Rellenad los campos tal como están en la imagen y ya está, ya lo tendréis en el menú.

ADVERTENCIA: TENED CUIDADO CON EL FLASHEO, SÓLO VOSOTROS SOIS RESPONSABLES DE VUESTROS GALAXY Y VUESTRA ES TAMBIÉN LA RESPONSABILIDAD DE COMPLETAR O CONTRASTAR TODA LA INFORMACIÓN QUE SE OS FACILITE.

Acordaos siempre de poner el teléfono primero en modo Depuración USB.

Y después en download mode:
Código:
adb reboot download

Primer ejemplo. Flashear kernel:

Supongamos que estáis en Froyo y queréis flashear un kernel específico que incluya root o el clockworkrecovery, para poder hacer nandroid backups o flashear directamente desde el recovery 2e. Podríamos descargar este, por decir alguno:
http://forum.xda-developers.com/showthread.php?t=788108

En el directorio que queramos descomprimiríamos el kernel: zImage.

En la versión 1.0 usualmente deberemos contar también con el pit 512. Como en este caso, que lo dejaríamos en ese directorio.

(Con la versión 1.1 el pit única y exclusivamente se usaría si hiciéramos repartición).

Por línea de comandos.

La estructura de la línea siempre será:
Código:
heimdall flash --<opción> <nombre_del_archivo>

Versión 1.0>
En este supuesto iríamos al directorio donde estuviera el pit 512 y el zImage e introduciríamos lo siguiente:
Código:
heimdall flash --pit s1_odin_20100512.pit --kernel zImage

Versión 1.1>
Sólo con zImage:
Código:
heimdall flash --kernel zImage

Por GUI:




Y Start

Segundo ejemplo. Flashear una rom entera:
Si todavía estáis con Eclair y queréis realizar una instalación limpia de Froyo mediante Heimdall, el procedimiento es igual de sencillo. Me refiero al flasheo en sí (para los prerequisitos aconsejables a la hora de flashear una rom como hacer backups, wipes data, etc... dirigíos a los múltiples post que hablan del tema).

Versión 1.0> Yo lo hice con la Froyo Europea (I9000XXJPO:http://www.multiupload.com/7CHHYFEGWS). Descomprimiríais lo siguiente:
*cache.rfs
*factoryfs.rfs
*modem.bin
*param.lfs
*zImage

Como de nuevo necesitaríais el pit 512, lo añadiríais al mismo directorio.

Y flasheando que es gerundio:

Código:
heimdall flash --pit s1_odin_20100512.pit --factoryfs factoryfs.rfs --cache cache.rfs --param param.lfs --kernel zImage --modem modem.bin

Versión 1.1>
Por todo lo que he comentado antes acerca de la repartición una instalación en limpio sería así:
Código:
heimdall flash --repartition --pit s1_odin_20100512.pit --factoryfs factoryfs.rfs --cache cache.rfs --dbdata dbdata.rfs --primary-boot boot.bin --secondary-boot Sbl.bin --param param.lfs --kernel zImage --modem modem.bin
Desconozco qué pasaría si se eligiera por ejemplo el boot.bin y el Sbl.bin de Richtofen para flashear esto...

Por GUI:



Y Start

Con la 1.1 para una instalación en limpio de una rom a otra basada en una misma versión de la que ya tenemos (Eclair-Eclair o Froyo-Froyo) no sería necesaria la repartición. De este modo, no deberia plantearse ningún tipo de problema, siendo el comando algo así:

Código:
heimdall flash --factoryfs factoryfs.rfs --cache cache.rfs --param param.lfs --kernel zImage --modem modem.bin
Y con las mismas opciones tal como ya habéis visto con la GUI.

Última edición por taopaipai Día 24/02/11 a las 11:33:26.
Responder Con Cita
Los siguientes 34 usuarios han agradecido a taopaipai su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]