lunes, 31 de octubre de 2011

CyanogenMod 7.1 en mi LG Optimus One (P500)

Pude instalar exitosamente CyanogenMod 7.1 (Android 2.3 Gingerbread) en mi LG Optimus One (P500), usando un ROM no oficial (o sea un ROM que no es armado por el proyecto CyanogenMod). Mi celular tenía originalmente Android 2.2 (Froyo). El link con todas las instrucciones, advertencias, consejos, etc. es:

http://forum.xda-developers.com/showthread.php?t=946354

Mi intención con este post es compartir mi experiencia, nada más. Si vas a hacerlo, te recomiendo que sigas las instrucciones del link que puse más arriba.

Yo use la version "beta6.5.8", que era la versión estable del ROM.

Procedimiento que seguí:
  • Primero: investigar en internet los peligros de hacer esto! Lo peor que puede pasar es que el celular deje de funcionar (o sea, ni siquiera se pueda prender)! Además, los programas que vienen de fábrica puestos por LG no van a estar mas (NDrive, juegos, y la posibilidad de sincronizar los datos con la PC usando el soft de LG, etc, etc, etc). A mí esto no me afectaba porque no uso esos programas, y la sincronización la hago con Google.
  • Leer http://forum.xda-developers.com/showthread.php?t=946354 (allí están todas las instrucciones necesarias).
  • Backupear todos los datos importantes, sacar todas las fotos, downloads, etc. 
  • Antes de la instación tuve que rootearlo (no entiendo por qué Google no obliga a que todos los celulares salgan rooteados "de fábrica", o con algún procedimiento documentado para hacerlo). Lo rooteé exitosamente con GingerBreak-v1.20.
  • Luego instalé ClockworkMod ROM Manager (http://www.clockworkmod.com/rommanager): esto permite hacer un backup de la instalación original e instalar ROMs. Este programa de la opción de formatear la tarjeta SD para crear una partición ext2/ext3, swap, etc. Si se hace esto, se perderán los datos almacenados en la tarjeta SD.
  • Luego hice un backup del ROM original (Froyo), por las dudas... Y por las dudas lo bajé a la PC.
  • Luego bajé el ROM para hacer la actualización, en mi caso, la versión estable más reciente era la beta6.5.8. El link actualizado a la última versión estable está en http://forum.xda-developers.com/showthread.php?t=946354
  • Luego de bajar el archivo, hay que pasarlo a la tarjeta SD.
  • En el Android, abrir "Rom Manager", elejir "Intall ROM from SD Card", y elegir el archivo bajado en el punto anterior. Lo que recomiendan es "... Do not forget to wipe data/cache ...", así que yo elegí borrar todo (total no tenía datos importantes en el celular).
  • A esta altura, el celular se reiniciará, instalará la nueva versión y arrancará nuevamente.
  • Luego hace falta instalar un ROM que trae las aplicaciones de Google mínimas necesarias (por ejemplo, Market!). El link para bajar las apicaciones también está en http://forum.xda-developers.com/showthread.php?t=946354
  • Ahora ya podemos abrir Market y bajar las aplicaciones que necesites :-)

    domingo, 23 de octubre de 2011

    Aptitude no funciona con multiarch

    Ubuntu Oneiric activa el soporte para multiarch.
    Multiarchi: Integrate support for cross-architecture installation of binary packages (particularly i386 / amd64, but also other combinations) in dpkg and apt
    Esto produce que aptitude sea bastante inusable debido a varios bugs (831768828807845183) que, al dia de hoy parecen estar sin resolver. Probé desactivar multiarch y al menos aptitude ya me funciona como antes. Para desactivar multiarch, edité el archivo /etc/dpkg/dpkg.cfg.d/multiarch y comenté la única linea que tiene:

    Antes:
    foreign-architecture i386

    Ahora:

    #foreign-architecture i386

    Al menos ya no me causa problemas al instalar nuevos paquetes, y ya no tengo conflictos imposibles de resolver (831768).

    ----------

    Luego de desactivar multiarch, no me funciona Wine, asi que simplemente no usaré aptitude, y estaré obligado a usar apt-get, o synaptic :-(

    Estilos de app. Gtk al usar KDE

    Por alguna cuestion la integración del estilo de las aplicaciones GTK (por lo tanto las app. Gnome) no está funcionando al usar KDE en Ubuntu Oneiric.

    Encontré una alternativa en https://bbs.archlinux.org/viewtopic.php?id=121803. Tampoco funcionó. Pero luego de revisar los estilos con soporte para GTK3, encontré que el estilo "oxygen-gtk" no existe en /usr/share/themes... Asi que probé con "Radiance" (que existe y es para GTK3) y funcionó! :-)

    Luego de hacer unas modificaciones, este es el contenido que dejé en /etc/gtk-3.0/settings.ini.

    [Settings]
    gtk-theme-name = Radiance
    gtk-fallback-icon-theme = gnome
    gtk-application-prefer-dark-theme = false
    gtk-font-name = Sans 9

    Y ahora queda pendiente arreglar las aplicaciones GTK2. Al parecer, las aplicaciones GTK2 buscan un archivo ".gtkrc-2.0" en el home del usuario, pero KDE genera un archivo llamado ".gtkrc-2.0-kde4". Esto puede solucionarse creando un symlink en el home del usuario con el siguiente comando:

    ln -s .gtkrc-2.0-kde4 .gtkrc-2.0

    sábado, 22 de octubre de 2011

    Ubuntu Oneiric + Arduino 0.22 = problemas

    Luego de actualizar Ubuntu ya no me compiló un proyecto de Arduino. Luego de chequear en internet encontré que hay unos bugs relacionados a este problema:

    https://bugs.launchpad.net/ubuntu/+source/binutils-avr/+bug/818188
    https://bugs.launchpad.net/ubuntu/+source/avr-libc/+bug/791335
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634341
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633659

    Y la forma rápida de solucionarlo fue seguir el consejo del último de los links, editando el archivo hardware/arduino/cores/arduino/wiring.h (dentro del directorio donde tengo instalado Arduino 0.22) y comentando la linea 79:

    Inicialmente está así:

    #define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))

    y ahora:

    // #define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))

    No sé cuáles serán los "efectos colaterales" pero funcionó!

    miércoles, 19 de octubre de 2011

    Cómo resetear South

    Podemos resetear South desinstalándolo y volviéndolo a instalar. Atención: esto hará que se pierdan todas las migraciones existentes, y los datos de las BD de las aplicaciones que se quieran resetear. Los pasos a seguir son:

    1) eliminar de la BD las tablas de South: south_migrationhistory.
    2) eliminar de la BD las tablas de las aplicaciones administradas por south.
    3) eliminar el paquete migrations de las aplicaciones que usen South.
    4) ejecutar syncdb.
    5) volver a marcar las aplicaciones que deben ser administradas usando South, ejecutando: "manage.py convert_to_south APP"