martes, 26 de abril de 2011

Actualizacion a Android Froyo (2.2) para Galaxy 5 (I5500B)

Hace poco compre un cel Samsung Galaxy 5 (I5500B, la “B” es importante ya que esta es para EEUU), que venía de origen con la versión 2.1, la verdad que el celular funcionaba perfecto, y supero mis expectativas (sobre todo Android) amplia mente.
Pero como me gusta muy poco quedarme con lo que traen por defecto los cel, investigue para pasa a la última versión estable que se puede instalar para este modelo de celular, que es la versión 2.2 (2.2 a secas, no 2.2.1. 2.2.2, y menos 2.3).
El principal problema que tuve es el de saber cómo hacer para respaldar la ROM original que venía, para si fallaba algo en un futuro que lo tuviera que volver para atrás, luego de tener esto la actualización a la nueva versión es realmente fácil.

Para el backup, utilice varias formas, una con soft en el celular que realiza backup de aplicaciones, sms, mail, etc, y otras que realiza bakup del sistema entero (y esto no estoy del todo seguro que quede bien, porque todavía no tuve que volver hacia la 2.1).

Vamos por paso, hay varios programas para respaldar aplicaciones, los que utilice fueron:
1 – MyBackup Pro, este programa es sencillo de usar y no pide que el cel este con el usuario root habilitado (rooteado como se dice) para realizar el backup. Esto al ejecutarlo van a poder ver que podes respaldar de todo, sms, contactos, aplicaciones, etc. Busquen un poco en internet que van a encontrar muchas cosas, pero en principio si quieren utilícenlo nunca está de más.


2 – Otro de la misma gama es Titanium Backup, que en definitiva es muy parecido al anterior (tienen sus deferencias), también como dije arriba, pruébenlo y tengan un respaldo extra.


3 – MyPhoneExplorer, este es distinto, este tienen 2 aplicaciones, una es para el PC, y otra es para el cel, con este respalde solo los contactos, pero se puede respaldar también las citas o tareas, además este soft, te sirve para administrar muchas cosas desde el PC, hasta podes enviar sms y llamar desde el pc. Les aconsejo bajarse la aplicación para el cel que es pequeña y la aplicación portable para el PC, y que lo prueben un poco.

Hasta ahora estamos respaldando datos, ahora vamos a ver cómo hacer para respaldar el sistema operativo.

4 – ahora debemos descargar el SDK para android, lo descargamos, lo actualizamos y seguimos estos pasos (importante, este paso pide tener acceso al usuario root, para esto yo utilice z4root, que es muy fácil dejar el cel rooteado, igual en los siguientes pasos copio el post que yo segui).



1.- Entramos en:
Ajustes -- Aplicaciones -- Desarrollo
2.- Marcamos la casilla Depuración USB.
3.- Conectamos el Galaxy por Usb al PC.
4.- Abrimos una consola de comandos. En win7 basta con abrir el menú de Inicio y escribir cmd en la casilla de buscar.
5.- Nos movemos en la consola hasta la carpeta /platform-tools que está en la carpeta del SDK. Si no hemos modificado nada para instalar, será como sigue:
cd C:/Program files/Android/android-sdk-windows/platform-tools
*Como véis, sólo hace falta escrbir el comando cd seguido de la ruta hasta esa carpeta. Si habéis modificado algo, deberéis modificar esa ruta.
6.- Una vez ahí, escribimos lo siguiente, pulsando Enter al final de cada línea:
Código:
adb shell 
su        Probablemente os pida permisos de superusuario en el Galaxy. Aceptáis y listo.
mkdir /sdcard/BackupRom
dd if=/dev/block/bml1 of=/sdcard/BackupRom/boot.bin bs=4096
dd if=/dev/block/bml2 of=/sdcard/BackupRom/pit.pit bs=4096
dd if=/dev/block/stl3 of=/sdcard/BackupRom/efs.rfs bs=4096
dd if=/dev/block/bml4 of=/sdcard/BackupRom/Sbl.bin bs=4096
dd if=/dev/block/stl6 of=/sdcard/BackupRom/param.lfs bs=4096
dd if=/dev/block/bml7 of=/sdcard/BackupRom/zImage bs=4096
dd if=/dev/block/stl9 of=/sdcard/BackupRom/factoryfs.rfs bs=4096
dd if=/dev/block/stl10 of=/sdcard/BackupRom/dbdata.rfs bs=4096
dd if=/dev/block/stl11 of=/sdcard/BackupRom/cache.rfs bs=4096
dd if=/dev/block/bml12 of=/sdcard/BackupRom/modem.bin bs=4096
tar -czvf /sdcard/BackupRom/data.tar.gz /data
Tras hacer esto tendremos una carpeta en la sdcard llamada BackupRom en la que se encuentran los diferentes archivos de la ROM. Se recomienda no compartir el archivo data.tar.gz ya que contiene nuestras contraseñas wifi, datos personales...

Yo segui al pie de la letra lo que dice este post, pero me dio error en la última parte donde voy a realizar el tar, ya que me decía que conocía el comando tar, pero igual me copie todos los archivos que género en la sd en la carpeta BackupRom a un disco de respaldo mío (eso es lo que no se si va a funcionar el levantar el bakcup

Por las dudas realice otro respaldo y es el que se muestra en este post  http://www.jorgeoyhenard.com/respaldar-firmware-del-samsung-galaxy-5/3471/


Bueno hasta aca la parte de respaldar todo la info, y como les digo es la parte más difícil.

Ahora lo que tenemos que hacer es instalar la versión nueva, para eso sigan estos pasos:

Primero tenemos que descargar la rom que queremos instalar y los programas que necesitamos:
Se debe de bajar la rom, odin que es el soft para flshear, y el archivo OPS, que en este caso es el que dice EUROPA por más que mi versión de celular es la americana. El siguiente link muestra todos los Rom que andan en la vuelta (yo instale la oficial y funciona perfecta, en un futuro voy a jugar con alguna otra).


Ahora necesitamos que el móvil este con la batería llena y su cable usb original
1 - Asegúrense de hacerle un backup de todo lo que este en la memoria del teléfono (no se pierden datos de la sd) .
2 - Apagamos el aparato y lo ponemos en modo "Download" (apretando: tecla volumen menos + la tecla del medio del pad(es el botón negro grade) + tecla de prender



3 - Ahora en el odin en la primer opción donde dice "select ops" cargamos el "EUROPA_v1.0.ops" y en la última donde dice selet integrate package (one package) seleccionamos el flash/actualizacion que elegimos (hay que marcar las 3 casillas como lo muestra la imagen)



y apretamos START -NO DESCONECTAR EL TELEFONO HASTA QUE EN EL PROGRAMA APARESCA EL CUADRADO AZUL QUE DICE "PASS"

(si luego de la instalación te aparece algo así selecciona la opción "reeboot system now"




4 - Es conveniente hacerle un hard reset luego de la instalación asi se corrigen algunos errores
*2767*3855# - Hard Reset (esto te borra todo los soft instalado, contactos, etc.


Con esto tenemos la versión 2.2 prontita (ahora solo hace falta levantar todos los datos que queramos, yo en mi caso solo levante los contactos).



Ahora porque me pase a la 2.2 (la verdad que por terco solamente), porque anda mejor que la 2.1 (más fluida), tienen mejor aprovechamiento de la batería (todavía no lo he podido comprobar 100% pero a 1 día diría que mejora), mas “lindo”, poder instalar las aplicaciones en la SD nativo, no con soft aparte (igual yo instale el app2sd).

Ahora algo extra es formatear la sd, y sobre todo por lo menos una partición con el formato EXT2, para esto yo utilice una máquina virtual con Linux y que arranque el gparted y cree las particiones y formate con el formato que queremos (lo que yo segui fue el siguiente post http://www.androidsis.com/preparando-la-sd-para-pasar-las-aplicaciones-de-android/ )



Resumen (a pedido de Federico)
1 – respaldar datos (MyBackup y MyPhoneExplorer)
2 – respaldar rom (SDK de android y comandos por consola)
3 – bajar programas y rom (descargar de internet)
4 – con odin flashear (ejecutar odin y esperar 5 minutos)
5 – formatear SD (una maquina virtual que arranque el live de gparted)
6 – recuperar los datos que respaldamos (MyPhoneExplorer).


Creo que esto es un avance, si quieren realmente actualizar la versión de S.O., esto serian los pasos a seguir, pero les aconsejo que investiguen un rato mas, sobre todo si su equipo no es Galaxy 5, ya que el proceso es totalmente distinto, y si tienen alguna duda en que los puedo ayudar estoy a las ordenes.


levantar base mysql teniendo archos

Para situarnos en el problema, vamos a suponer que tenemos un equipo andando perfecto con mysql, y este equipo se rompe algo del sistema operativo (en mi caso Linux) pero podemos acceder a los archivos del disco, entonces lo que queremos hacer es instalar el S.O. y luego levantar las bases que tenía antes, vamos a suponer también que no tenemos un respaldo.
Las bases que yo utilizo son InnoDB, así que este proceso es factible con este tipo de formato, con MyIsam, no lo puedo asegurar

Lo primero que tenemos que hacer es instalar el sistema operativo y el mismo mysql que teníamos antes (si tenemos exactamente la misma versión mejor, sino quizás el proceso no funciona).
Ahora bajamos mysql para que no moleste ni tenga ningún archivo lockeado.
Luego tenemos que copiar los archivos de configuración del mysql y los archivos de datos del disco roto, a el nuevo disco, esto es el archivo my.cnf, y todo lo que está en la carpeta /var/lib/mysql, tanto el o los archivos ibdata, como las carpetas, si se fijan las carpetas tiene los nombres de las bases de datos.
Debemos de fijarnos que los permisos de la carpeta /var/lib/mysql queden como originalmente, normalmente solo el usuario mysql puede hacer cosas en estos archivos o carpetas, pero si no llegan a darle en la tecla, le dan permisos totales (obviamente esto es un problema de seguridad).
Ahora reiniciamos el servicio de tomat, y si tenemos suerte van a quedar levantadas las bases que teníamos con los datos que teníamos.

Resumen:
1 – instalar S.O. y MySql
2 –bajar mysql
3 – copiar archivos de configuración de disco roto a nuevo disco
4 – copiar archivos y carpetas de datos del disco roto a nuevo disco
5 – verificar permisos
6 – levantar mysql y probar

lunes, 4 de abril de 2011

Nueva forma de ver los blog

Se habilito una nueva forma de ver los blog, les dejo el link de mi blog.

http://mistrucosinformaticos.blogspot.com/view/timeslide

Pueden ver arriba a la derecha las 5 formas de verse, la que más me gusta es la que indico arriba.

Achicar discos de vmware

Ya en un post anterior explique cómo agrandar un disco de una máquina virtual, ahora me enfrento a lo contrario, tengo un disco que el archivo vmdk me pesa unos 18GB, pero si entro al sistema operativo, en este caso es Ubuntu Server, me dice que ocupado tengo unos 2 GB, y lo que quiero es ver si puedo dejarlo al vmdk en estos 2GB (obviamente algún poco mas).

Por qué el vmdk pesa 18GB, bueno el sistema operativo tenía una base de datos, la cual en su momento tenía algunas tablas con muchísimos datos, y está bien que haya crecido hasta los 18GB, pero luego de usarlo en su momento limpie la base y esto se achico nuevamente, y ahora el uso que le voy a dar es mucho menos, entonces con 3 o 4 GB totales me va a dar y sobrar, entonces para no desperdiciar espacio en mi equipo o en mi lugar de respaldo, lo necesito achicar.

Bueno yo hace mucho tiempo utilice el programa de Norton, llamado Norton Ghost, esto lo que hace es te puede hacer un clonado de discos o llegar un disco a una imagen (utilizado cuando vas a instalar muchos equipos idénticos, entonces perdes el tiempo en el primero y los otros solo levantas la imagen). Luego surgieron varias aplicaciones libres y la que más me llama la atención es Clonezilla. Además esta aplicación tienen un live cd el cual te arranca el sistema operativo y directamente podes trabajar desde ahí.

Entonces para empezar lo que tenemos que hacer es a nuestra máquina virtual agregarle un disco duro de igual o mayor tamaño que el que tiene, esto está bien es de igual o mayor tamaño, el tema es que no tenemos que hacer que sea persistente, y que sea autoextendible, recordar que realmente en vez de los 20GB que decía mi máquina, realmente usa solo 2.

Segundo tenemos que bajarnos la última versión del live Cd de Clonezilla, bajamos la iso, para poder ponerla como cd de arranque de la máquina virtual. Obviamente tenemos que configura la máquina virtual para que boote desde el CD.

Ahora solo basta en correr la máquina virtual, ver que arranque desde el CD, luego seguir los pasos con clonezilla, la opción que hay que elegir es realizar una clonación de disco a disco, luego de algún rato, esto termina y apagamos la máquina, luego lo que hacemos es eliminar el disco principal y dejar solo este nuevo que clonamos. Si todo funciono perfecto, lo que vamos a ver es que el vmdk, en vez de pesar los 18GB, está pesando muchísimo menos.



-----------------------------------------------------------------------------


Agregado: Como un amigo (Federico Alvarez) se enfrento a esto, y el me aconsejo poner un resumen de lo que hay que hacer, y el se tomo el trabajo de hacerlo, lo voy a copiar aca para que le sirva a alguien mas.



reducir MySQL

0) SNAPSHOT!

1) respaldar todas las bases de equipo

2) bajar servicio de MySQL

3) modificar /etc/my.cnf ó /etc/mysql/my.cnf

pasar ibdata a 100M (o el valor que se considere)

4) eliminar todo el contenido de /var/lib/mysql/

menos: mysql_upgrade_info, mysql (carpeta)

5) reiniciar MySQL

chequear nuevo ibdata1 de 100M

6) levantar respaldo de bases

chequear que funcionen las aplicaciones

reducir HDD

0) SNAPSHOT!

1) crear segundo disco de 50Gb (no prealocado, autoextend), y el tamaño es igual o mayor que el anterior

2) crear unidad de CD precargada con ISO de clonezilla

3) iniciar la maquina

4) crear un clon disco-disco de SDA a SDB

5) darle a todo por defecto (leer que se hace en cada punto)

6) apagar

7) eliminar disco1

8) eliminar CD

9) iniciar maquina y chequear

10) eliminar snapshots (sino no liberas el disco)



detectar tarjeta de red

En un anterior post mostré como configurar las tarjetas de redes en un Linux o más específicamente si esta es una máquina virtual. Pero lo que está pasando es que a veces no se está tomando la tarjeta en el eth0, sino que es el ethxx, siendo este xx cualquier número, entonces la opción que mostré antes es poner de la uno a la 20 y esto (si xx es menor a 20) se soluciona.

Ahora analizando un poco y no queriendo tener que configurar 100 eth0, es detectar en Linux cual es la eth que si detecta.

En resumen tenemos que ejecutar el siguiente comando:

$ dmesg | grep eth

Esto nos tira que eth es el que Linux ve, y con esto vamos a el archivo interfaces y configuramos solo esta tarjeta.

domingo, 3 de abril de 2011

Instalar y configurar ambiente Linux con Ruby para aplicacion Genexus Ev2 para Android

Luego de hacer mil pruebas voy a comentar cómo hacer para tener un ambiente Linux, en mi caso la distro que utilice fue Ubuntu, con Ruby, en mi caso la versión 1.9.1 que es la que funcionaba con Genexus Evolution 2 (beta 2 y algún nigth buils mas, pero creo que no me equivoco si digo que desde evolution 1 en delante, hasta hoy funciona), y una aplicación en mi caso particular para Android.

Perimo contarle que hice muchas pruebas, en las que utilizando Ubuntu Desktop 10.10 (supongo que server 10.10 es lo mismo), no pude llegar a que funcionara, el problema es que instales lo que instales, de ultima queda instalado Ruby 1.9.2, y esto no le gusta a las aplicaciones Genexus.

Las otras pruebas las realice (y en esta si me quedo andando) con Ubuntu Server 10.4.

También les cuento que probé varias formas de instalar, tanto ruby como las otras cosas que necesito, por ejemplo passenger, y la única que me función es la que voy a describir abajo, probar instalando por rvm (que es un manejador / instalador de ruby, dicho muy brutamente), con el código fuente, a la vieja usanza del famoso make, make install, con apt-get, pero repito la única forma que me anduvo fue como describo (para obtener este manual estuve trabajando más de 1 semana entera, y muchas horas en cada dia)

Bueno me base en un manual que la gente de artech tienen desde hace tiempo y mucha ayuda de alguien de Artech (su nombre es Daniel Mendez, y es un conocido de los eventos gx, por más que nunca hable con el), para el que quiera mirarlo les deja el link http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Linux+setup+for+running+Ruby+applications+using+mod-rack

Pero con este manual no basta (por lo menos a mi no me basto ni por casualidad).

Empecemos:

Paso 1: Instalar Ruby:

Para esto ejecutamos lo siguiente (recordar que esto es para Ubuntu Server 10.4 en la versión más nueva no funciona porque termina instalando la versión 1.9.2)

$ sudo apt-get install ruby1.9.1-dev ruby1.9.1 ri1.9.1 rdoc1.9.1 irb1.9.1 libreadline-ruby1.9.1 libruby1.9.1

Paso 2: Crear los links a lo instalado:

$ sudo ln -s /usr/bin/ruby1.9.1 /usr/local/bin/ruby

$ sudo ln -s /usr/bin/ri1.9.1 /usr/local/bin/ri

$ sudo ln -s /usr/bin/rdoc1.9.1 /usr/local/bin/rdoc

$ sudo ln -s /usr/bin/irb1.9.1 /usr/local/bin/irb

$ sudo ln -s /usr/bin/gem /usr/local/bin/gem

Esto se puede hacer acá o más adelante, pero como lo necesito lo hago acá, si nos fijamos en la carpeta /usr/local/bin, vamos a ver que el link a gem no está bien (debe de aparecer en rojo), pero por ahora la dejamos así.

Paso 3: Instalar algunas gemas que precisamos.

$ sudo apt-get install libmysql-ruby1.9.1

$ sudo apt-get install rubygems1.9.1

$ sudo apt-get install libmysqlclient15-dev

Para este paso y para todos los que vienen cada cosa que instala debemos de ver que no quiera instalar algo distinto a la versión 1.9.1, si por alguna cosa dice que quiere instalar alguna otra versión, tenemos que buscar la vuelta para no hacerlo.

Paso 4: Instalar gema passenger

$ sudo gem install passenger

A esta altura si nos fijamos el link de gem que hicimos en el punto 2 ya debe de estar verde.

Para cerciorarnos que todo sigue bien desde la consola debemos de ver la versión de ruby

$ ruby -v

Si esto nos dice 1.9.1 esta todo bien, si dice otra cosa algo hicimos mal y no creo que funcione la aplicación genexus.

Paso 4: Instalar passenger.

Primero tenemos que descargarnos passenger, yo la versión que instale fue la 3.0.5. Luego que lo tengamos lo copiamos a alguna ruta, en mi caso /home/teto/passenger, luego entramos a la carpeta bien (la van a ver dentro de lo que descomprimimos), y le daremos permiso de ejecución y ejecutamos lo siguiente:

$ cd ./passenger-X.X.X/bin/
$ chmod 777 passenger-install-apache2-module
$ ./ passenger-install-apache2-module

Esto es interactivo, es decir que nos va tirando por consola varios mensajes, el primero es que va a empezar a trabajar, luego hace un chequeo, y acá es donde empieza a complicarse un poco la instalación, ya que casi seguramente no pase todos los chequeos, pero al final el instalador nos va diciendo que nos está faltando y cómo podemos hacer para instalarlo, todo es con apt-get, pero aca hay que tener mucho, mucho, cuidado, ya que si empezamos a ejecutar lo que nos dice, sin mirar lo que va a instalar (sobre todos las dependencias que necesitan los paquetes que instalamos), que en ningún momento nos diga que va a instalar algo distinto a ruby 1.9.1. Mi consejo es que vayan instalando de a una y que vayan mirando las dependencias, y si algo les da una dependencia de con un ruby 1.8 (este fue mi caso), que lo dejen de lado y vayan instalando lo otro, que nos dijo, o buscando la versión 1.9.1 del paquete. Sé que no es muy específico lo que digo pero solo en un par de paquetes nos da problemas, la gran mayoría se pueden instalar directamente.

Cuando se termina de instalar passenger, nos da 3 renglones que tenemos que guardarlos para poner en el archivo de configuración de apache.

Si llegamos a este paso ya tendríamos casi todo pronto, lo que nos falta ahora es tener apache instalado, y configurado.

Paso 4: instalación y configuración de apache2.

$ sudo apt-get install apache2


En el archivo /etc/apache2/apache2.conf al final agregamos las 3 líneas que nos dio el instalador
de passenger en mi caso es algo así



LoadModule passenger_module
/home/teto/ruby/passenger-3.0.5/ext/apache2/mod_passenger.so
PassengerRoot /home/teto/ruby/passenger-3.0.5
PassengerRuby /usr/bin/ruby1.9.1


Ademas tenemos que modificar el httpd.conf para indicar el directorio virtual del apache,
en mi caso es algo asi (esto también lo indica el instalador de passenger pero lo que nos
pone no está del todo bien)


VirtualHost // esto va entre simbolos de mayor menos
ServerName localhost
DocumentRoot /home/teto/ruby/aplicacion/public
Directory /home/teto/ruby/ aplicacion /public
// esto va entre simbolos
// de mayor menos
AllowOverride all
Options -MultiViews
/Directory
// esto va entre simbolos de mayor menos
/VirtualHost // esto va entre simbolos de mayor menos

Si se fijan, mi aplicación , se llama aplicación, pero tenemos que indicar hasta public.

Paso 5: copiar la aplicación.

Bueno esto es la parte fácil (creo), teniendo ya compilada y bien configurada la aplicación en genexus, recordar poner bien la base de datos, el webroot que tienen que tener algo asi: http://ipdelservidor/aplicacion, luego generamos y compilamos, para que nos cree todos los objetos que necesitamos.

Luego detecatamos donde nos crea los objetos (si lo dejaron por defecto estaría en RubyModel), y copiamos todo, a la carpeta del servidor /home/teto/ruby/aplicacion.

Luego creamos dentro del servidor una carpeta tmp y una public (/home/teto/ruby/aplicación/tmp y /home/teto/ruby/aplicación/public)

Luego (y esto no se si es necesario y me parece que no pero yo lo hago por las dudas) encontramos la carpeta gxruby de donde instalamos genexus y la copiamos también a la carpeta /home/teto/ruby/aplicación.

Paso 6: probar que funcione.

Lo podemos probar desde el emulador o desde algún celular que tenga android, si es desde el emulador solo tenemos que darle play a genexus (si tenemos todo bien configurado, la base creada etc., la aplicación se muestra en el emulador) o ejecutar nuestra aplicación en el cel.

Bueno con esto a mí me funciono, por favor si hay algún error o si alguien tienen una forma más fácil, me lo comenta para investigarlo.

sábado, 2 de abril de 2011

Desinstalar rvm

rvm es un instalador de ruby, pero en mi caso quiero deshacerme de el porque me está causando problemas para una instalación de ruby para una aplicación genexus (Evolution 2 en este caso particular).

Lo que debemos ejecutar desde consola es

rvm implode

con este simple comando nos dará de baja todo el rvm, en mi caso antes para cerciorarme que todas las versiones de ruby que tenia instalada (porque se puede tener varias versiones, y rvm las maneja), fui desinstalando de a una de esta forma:

rvm remove 1.9.1
rvm remove 1.9.2

……

Luego si doy de baja el rvm, al finalizar el comando este nos dice que tenemos que borrar a mano algunos archivos.

Bateria en Android

Si leyeron el anterior post, sabrán que tengo un celular nuevo con Android, en particular Samsung Galaxy 5.

El celular está muy bien pero tiene la contra de todos los celulares nuevos que la batería no dura lo que uno quiere, en particular usándolo muy poco me duraba 1 día.

Entonces un amigo (Federico A.) investigando el celular encontró que se puede pasar de red 3G a 2G, con este simple cambio (que en el celular llegan a esto siguiendo la ruta: Ajustes – Conexiones inalámbricas – Redes móviles – Utilizar sólo redes 2G), y obviamente bajando el brillo, el celular paso de 1 a 4 días, en un uso moderado.