Jan 29 2010

Cambiar el wallpaper en el OpenMoko

Buenas noches, hacía mucho no tenía tiempo de postear algo sobre el OpenMoko y estaba aburrido por no poder hacer algo con el juguetico pero hace poco lo estuve desempolvando para mirar el nuevo SHR (que ya estrenó rama testing -antes sólo había rama unstable-) y se puede ver que con la nueva versión todo va un poco más rápido y hay unas barras en el menú de una llamada para administrar el volumen del micrófono y del altavoz. Lo único malo (y bastante) es que cuando me llaman, las otras personas no me escuchan, espero que sea una configuración que no he hecho aún y no el temido buzz (defecto que posee la versión del OpenMoko que tengo). Pienso que puede ser por configuración porque con Android (no dejo Android instalado porque es muy invasivo, no deja tener dual boot) no tenía ese problema.

Ese fue el pequeño resumen de lo que ha pasado con mi FreeRunner últimante, ahora sí entremos en detalles acerca de cambiar el wallpaper en el OpenMoko usando SHR como distribución.
Los archivos que utiliza SHR como wallpapers no son simples imagenes png o jpg, son archivos especiales con extensión edj. Para crear estos archivos a partir de imágenes png o jpg, debemos seguir estos pasos:

1. Obtener la (s) imágen (es) de 480×640 que deseamos tener entre los posibles wallpapers para nuestro OpenMoko. Hasta donde sé, se pueden usar imágenes en formato jpg, jpeg y png

2. Instalar el paquete edje-utils en nuestra distro. Por ejemplo para Arch Linux, el paquete se llama edje-svn; para ubuntu podremos ver el proceso aquí (para Karmic Koala, ponemos la última línea -la que está en la nota). Este paquete nos proveerá varias herramientas, la que nos interesa particularmente es edje_cc que nos permitirá crear los archivos edj que necesitamos.

3. Crear el archivo de configuración que se usará para producir el .edj. Un archivo de configuración (.edc) luce así:

images { image: “Ink-6.png” LOSSY 90; }
collections {
group { name: “e/desktop/background”;
data { item: “style” “2″; }
max: 480 640;
parts {
part { name: “col”; type: RECT; mouse_events: 0;
description { state: “default” 0.0;
color: 255 255 255 255;
} }
part { name: “bg”; mouse_events: 0;
description { state: “default” 0.0;
min: 480 640; max: 480 640;
image { normal: “Ink-6.png“; }
} } } } }
Se debe prestar atención a las líneas en negrita que son las que hacen referencia a la imagen que vamos a convertir en edj

4. Tener en el mismo directorio el archivo edc y el archivo de la imagen referenciada en este (como adivinarán en este paso, si se quieren crear varios wallpapers, se tendrá que modificar el arcihvo .edc para que haga referencia a una imagen a la vez) y generar un archivo edj para cada uno.

5. Ejecutar en la consola el siguiente comando
edje_cc $@ -id . -fd . archivoConfiguracion.edc -o archivoSalida.edj
En el comando anterior se cambia archivoConfiguracion.edc y archivoSalida.edj por los nombres que queramos

6. Conectar el OpenMoko al PC y transferir (via ssh o sftp si se quiere) los archivos edj que se obtuvieron en el paso 5 y ubicarlos en cualquiera de estas carpetas según donde queramos que se vean en el menú de SHR:

- Personal: /home/root/.e/e/backgrounds

- Sistema:  /usr/share/enlightenment/data/backgrounds
NOTA: Puede que en las rutas anteriores no exista la carpeta backgrounds, si es así, debemos crearla (mkdir backgrounds por la consola de shh)

7. En el OpenMoko, desplegamos en menú superior de SHR y seleccionamos en la esquina superior izquierda una rueda verde (logo de SHR?) en las nuevas versiones o un ícono de herramienta en las versiones antiguas. Esto nos abrirá el menú de configuración de SHR en el que se ven varios “tabs” o pestañas cada una con diferentes opciones. Seleccionamos allí la pestaña Look y luego la opción wallpaper.
Este menú no se ve bien en la pantalla (el texto sale cortado) pero no obstante es navegable y podemos ver que hay un radio button que nos permite seleccionar entre Personal, System y Use Theme Wallpaper; las dos primeras representan las carpetas que nombramos en el punto anterior.
Así que si por ejemplo pusimos nuestro wallpaper en /usr/share/enlightenment/data/backgrounds, podremos encontrarlo seleccionando System en el radio button que vemos arriba. En la parte izquierda podremos ver los nombres de los wallpapers y seleccionando uno, podremos ver su vista previa en la parte derecha.
Una vez sepamos cual estableceremos como wallpaper, seleccionaremos OK o APPLY y al volver al escritorio de SHR podremos ver que nuestros cambios ya tuvieron efecto.

Como vieron el proceso para seleccionar un wallpaper para el OpenMoko no es tan sencillo como poner imágenes en un directorio y luego seleccionarlas, pero después de generar el archivo edj, el proceso se resume a esto.

Si no quieren tener que hacer las configuraciones, aquí hay algunos archivos edj listos para que los suban a su OpenMoko y los disfruten

Don’t Worry………Be Linux!!!!!!!!!


Nov 14 2009

Flashear el OpenMoko

Buenas noches, después de lograr conectar el OpenMoko al PC y acceder a él por SSH (recordamos lo visto en Conectar OpenMoko al PC), lo primero que se debe hacer es actualizar los programas que vienen instalados en OM 2008-08 (el sistema operativo que viene por defecto en el OpenMoko), ésto se hace con un comando similar al usado en distribuciones basadas en debian:

opkg update && opkg upgrade

Esto no es todo lo que podemos hacer ahora que tenemos acceso a internet desde nuestro OpenMoko, podremos navegar usando Midori, usar el GPS con TangoGPS y lo mejor de todo, instalar los programas que deseemos, incluyendo distribuciones, lo que cubriremos en este post.

En posts anteriores nombré algunas distribuciones que tenemos como opciones para instalar en nuestro OpenMoko, particularmente me he interesado por SHR porque parece ser la más prominente y con mejores programas que las otras. La primera vez que la instalé, lo hice en la memoria microSD y después de ensayarla por un tiempo, estaba preparado para instalarla como SO base y probar otras distros (como Debian en la MicroSD). Para comenzar con los pasos para la instalación de una distribución en el OpenMoko vale la pena decir que ésta consta de un archivo que es el kernel (.bin) y un archivo con el sistema de archivos o root file system (.tar.gz si se instala en la microSD o jffs2 si se instala en la memoria NAND).

A continuación los pasos para efectuar la instalación en la memoria NAND:

1. Instalar dfu-util en la distro: dfu-util es el paquete que nos servirá para ‘quemar’ o escribir el Kernel y el Root FileSystem en la memoria NAND. Instalar dfu-util en distribuciones como ubuntu será tan sencillo cómo un apt-get install dfu-util. En Arch Linux, podemos recurrir al AUR e instalarlo como se vio en un post anterior con Chromium.

2. Descargar el kernel y el rootfs: Como había mencionado, éstos son los componentes esenciales de una distribución. Para SHR, se deben descargar desde http://build.shr-project.org/shr-unstable/images/om-gta02/

Los archivos que debemos descargar son (a fecha Noviembre 13 de 2009)

- Kernel: uImage-2.6.29-oe11+gitr119844+a3587e4ed77974adfb057af261aaeea4022018e8-r3.5-om-gta02.bin

- Rootfs: full-om-gta02.jffs2

3. Bootear el OpenMoko en el menú NOR-Boot: El OpenMoko tiene diversos modos de booteo, el normal es llamado NAND y existe otro que se llama NOR, en el cual podemos escribir el kernel y el sistema de archivos. Como habrán adivinado, ese es el modo en el que tendremos que bootear el OpenMoko para flashearlo. Para entrar en ese modo basta con apagar el OpenMoko y para encenderlo, presionar el botón AUX por algunos segundos y luego presionar el botón de encendido, veremos un menú como éste:

NO seleccionamos ninguna opción del menú, sino que presionamos repetidamente el botón AUX para evitar que el OpenMoko arranque antes de tiempo. Ahora proseguimos con el siguiente paso

4. Conectar el OpenMoko al PC: En este paso no establecemos una conexión vía SSH con el OpenMoko, simplemente conectamos el Smartphone al PC a través del cable USB.

5. Probar conectividad: Debemos comprobar que dfu-util reconoce el OpenMoko, para lo que escribimos en la consola del PC

dfu-util –list

Con lo que tendremos una salida como:

dfu-util – (C) 2007 by OpenMoko Inc.

This program is Free Software and has ABSOLUTELY NO WARRANTY

Found Runtime: [0x1d50:0x5119] devnum=9, cfg=0, intf=2, alt=0, name=”USB Device Firmware Upgrade”

Esto indica que todo está bien y el PC reconoció el OpenMoko

En este paso debemos estar presionando constantemente AUX para que el OpenMoko no bootee antes de escribir el sistema de archivos y el Kernel.

6. Escribir el kernel y el sistema de archivos: Si hemos llegado a este paso sin ningún problema, procedemos a ‘quemar’ la imagen del kernel y el rootfs en la memoria NAND del OpenMoko con los siguientes comandos:

dfu-util -a rootfs -R -D full-om-gta02.jffs2

En el OpenMoko veremos algo como:

Starting DFU DOWNLOAD to partition…

[...]

DFU: Switching to DFU mode

[...]

Y en la consola del PC:

dfu-util – (C) 2007 by OpenMoko Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY

Opening USB Device 0×0000:0×0000…
Claiming USB DFU Runtime Interface…
Determining device status: state = appIDLE, status = 0
Device really in Runtime Mode, send DFU detach request…
Resetting USB…
Opening USB Device…
Found Runtime: [0x1d50:0x5119] devnum=10, cfg=0, intf=0, alt=6, name=”rootfs”
Claiming USB DFU Interface…
Setting Alternate Setting …
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0×1000
bytes_per_hash=1431306
Starting download: [#####

Al finalizar el proceso, en el PC debe aparecer

Starting download: [##################################################] finished!
state(2) = dfuIDLE, status(0) = No error condition is present
Done!

Resetting USB to switch back to runtime mode

Y el OpenMoko dirá:

DFU: Switching back to Runtime mode

Por último escribimos el Kernel con el siguiente comando:

dfu-util -a kernel -R -D uImage-2.6.29-oe11+gitr119844+a3587e4ed77974adfb057af261aaeea4022018e8-r3.5-om-gta02.bin

Este proceso demorará mucho menos que el anterior y cuando finalice podremos

7. Seleccionar la opción para arrancar y presionar POWER: Al hacer esto, veremos cómo bootea en nuestro OpenMoko la distribución SHR que acabamos de instalar.

Como pueden ver es sencillo el proceso de flashear el OpenMoko y es aún más sencillo cuando la distribución se instala en la memoria microSD, proceso que trataré de explicar en un nuevo post.

Don’t Worry……….Be Linux!!!!!


Aug 22 2009

Eliminar Caracteres extraños en unidades extraíbles

Buenas noches, hace unos días me venía molestando un problema en Arch Linux.

Cuando montaba una memoria USB con la que estaba trabajando en Windows, me salían caracteres extraños en los nombres de los archivos.

Traté varias soluciones, cambiando los locales a es_CO.iso8859-1 (Latin1), cambiando opciones en /etc/fstab y no daba con la solución.

Con la ayuda de pmount, supe que el iocharset de la memoria era ISO8859-1, en parroquiano: la codificación no tenía compatibilidad con los nombres de archivos de sistemas Windows:

$ pmount
Printing mounted removable devices:
/dev/sdb1 on /media/CRIS_USB type vfat (rw,nosuid,nodev,relatime,uid=1000,fmask=0022,dmask=0000,allow_utime=0022,                    codepage=cp437,iocharset=iso8859-1)
To get a short help, run pmount -h

Mi configuración en /etc/rc.conf dice LOCALE=”es_CO.UTF-8″ entonces la aparente solución era cambiar de algún modo ese iocharset para que quedara como UTF-8. Al leer las páginas del manual de mount encontré esto en la sección de fat (formato de memorias USB):

iocharset=value
Character set to use for converting between 8 bit characters and
16 bit Unicode characters. The default is iso8859-1.  Long file‐
names are stored on disk in Unicode format.

Eso confirmaba que las memorias se montaban con ese charset por defecto: ISO8859-1.

Ya me estaba dando por vencido hasta que encontré una solución que salió de la mezcla de varias páginas que consulté. Comparto con ustedes los pasos para solucionar el problema (Esto funciona en Gnome, si alguien que use otro entorno gráfico puede decirnos como hacerlo en ese(esos) entorno(s) es bienvenido):

1. Abrimos el editor de configuración de Gnome

$ gconf-editor

2. Vamos a System -»storage -» default_options -»  vfat y nos ubicamos en la ventana de la derecha donde se ven claves, en este caso vemos una que dice mount_options

3. Editamos esa clave haciendo doble click en ella y nos aparece un botón para añadir más opciones a la clave, pulsamos este botón:

4. Añadimos como opción iocharset=utf8 . Guardamos los cambios dando click en aceptar y cerramos el editor de configuración de Gnome.

NOTA: Se escribe utf8 (todo pegado), probé muchas veces con utf-8 (el nombre lógico del charset) pero la unidad no se montaba. Al ver dmesg | tail aparecía: FAT: IO charset utf-8 not found. Así que no lo olviden, se escribe utf8 en la opción de montaje.

5. Por último, disfrutar de nuestros archivos con sus nombres bien escritos después de volver a montar la unidad USB

Y la salida de pmount nos dice:

$ pmount
Printing mounted removable devices:
/dev/sdb1 on /media/CRIS_USB type vfat (rw,nosuid,nodev,relatime,uid=1000,fmask=0022,dmask=0000,allow_utime=0022, codepage=cp437,iocharset=utf8)
To get a short help, run pmount -h


Don’t Worry………Be Linux!!!!!!!!!!!


Jul 27 2009

Problema con distribución del teclado en Arch

Buenas noches, les he hablado un poco de Arch ultimamente y por lo que les he comentado, me ha ido bien pero resulta que tengo un pequeño problema. El teclado de mi portátil está en inglés (no tengo símbolo de mayor que y menor que) y esto es un problema para programar; la solución es alternar la distribución del teclado entre español/inglés para escribir/programar. Esto se hace fácilmente a través de una utilidad de distribución de teclado en el panel de Gnome pero desde que utilicé esta solución me salía este error al agregar la distribución EEUU:

Error activating XKB configuration.
It can happen under various circumstances:
- a bug in libxklavier library
- a bug in X server (xkbcomp, xmodmap utilities)
- X server with incompatible libxkbfile implementation X server version data:
The X.Org Foundation………..

Este error salía al iniciar el Gnome (en cada inicio). Lo tuve que aguantar por un tiempo ya que no había encontrado buena información al respecto y utilizaba la forma de cambiar la distribución desde la consola (setxkbmap es / us). Hoy estuve leyendo esta pregunta en launchpad (ubuntu) y encontré esta solución transitoria: En la aplicación del panel de Gnome para cambiar la distribución del teclado hacer click derecho->preferencias del teclado->pestaña distribuciones->Restablecer valores predeterminados

Por ahora no he podido organizar el problema en la aplicación del panel pero ya no se me presenta el problema al inicio del Gnome. Creo que el cuento pasa por los locales pero seguiré buscando al respecto. Si alguien tiene info, se le agradece :P

No todo en Linux son bellezas o errores y eso lo hace mi sistema operativo preferido, no importa qué pase, se aprende :D

Don’t Worry………Be Linux!!!!


Jul 11 2009

Instalar Chromium en Arch Linux

Buenas noches, hoy estuve retomando mi trabajo en Arch y voy a matar dos pájaros de un solo tiro: explicar cómo funciona el AUR e instalar Chromium.

Para empezar, muchos de uds no estarán familiarizados con la palabra Chromium pero tal vez reconozcan esto: Google Chrome (el navegador de google), resulta que Chromium es un proyecto de software libre en el cual se basa Google Chrome. Aún no hay versión oficial de Google Chrome en Linux o Mac pero en el proyecto Chromium se han estado generando algunas versiones (muy preliminares aún pero funcionales) para estos sistemas operativos.

Sin más preámbulos, vamos a la instalación de Chromium en Arch Linux.

Nota: Para instalar Chromium vamos a hacer uso del AUR (Arch Users Repository) del que hablé en el primer post sobre Arch

PASOS

1. Instalar el paquete que contiene las herramientas para compilar e instalar paquetes (similar al build-essentials en Debian/Ubuntu)

pacman -Sy base-devel

2. Crear una carpeta en nuestro directorio personal que podemos llamar builds (o como deseemos). Allí se almacenarán los archivos para instalar los programas

mkdir builds

3. Buscar el paquete que queremos instalar en el AUR (En nuestro caso, Chromium)

http://aur.archlinux.org/packages.php?O=0&K=google+chrome&do_Search=Go

4. Entre los resultado que aparecieron, vemos que hay uno subrayado en rojo porque ya no tiene soporte (ningún usuario lo está manteniendo). Entonces vamos al primero y vemos que nos sale la descripción del paquete (build del 10 de Julio) y algunas opciones de descarga. El PKGBUILD es un archivo que contiene información del paquete, como la versión, las arquitecturas que soporta, las dependencias, etc. Lo que nos interesa descargar es el archivo .tar.gz, así que damos click en la parte izquierda donde dice tarball (ver imagen).

Chromium URL

Chromium URL

5. Copiar el archivo a la carpeta builds que creamos en el paso 2, descomprimirlo y ubicarnos en el directorio recién descomprimido

cp chromium-snapshot.tar.gz /home/usuario/builds

cd /home/usuario/builds

tar -xvf chromium-snapshot.tar.gz (Esto creará el directorio chromium-snapshot)

cd chromium-snapshot

6. Compilar e instalar el paquete (verificar primero el contenido del archivo PKGBUILD y otros archivos que parezcan de instalación para ver que no contengan instrucciones maliciosas, nunca se sabe :P )

makepkg -s

Este paso creará un paquete con extensión pkg.tar.gz que son los de Arch Linux. En nuestro caso, chromium-snapshot-20455-1-i686.pkg.tar.gz

7. Ya tenemos todo listo para instalar el Chromium usando pacman (el gestor de paquetes de Arch)

sudo pacman -U chromium-snapshot-20455-1-i686.pkg.tar.gz

Como dirían en España: En hora buena!!!! Ya tenemos instalado el navegador open source Chromium (con acceso directo en nuestro menú y todo), nunca sobra tenerlo ya sea por tener dos navegadores o si nos dedicamos al desarrollo web y debemos probar nuestras páginas en varios navegadores. Acá un pantallazo del navegador corriendo en Arch

Chromium en Arch

Chromium en Arch

Ya vieron qué sencilla es la gestión de paquetes en Arch utilizando el AUR?. Dudas?….Más información del uso del AUR aquí.

Don’t Worry………Be Linux!!!!!!!!!!!

Update: Para instalar el paquete se usa pacman -U como dijo Jaime


Jun 18 2009

Arch Linux

Buenas noches, los que han leído los comentarios en los anteriores posts, se han dado cuenta que habían varios que cuestionaban mi elección de Ubuntu como distribución base en mi portátil. La conclusión de esto es que me gusta que la distribución que use tenga un buen repositorio de paquetes disponibles para instalar fácilmente y que la administración de éstos sea sencilla también. Ubuntu cumple con esto, pero la idea es conocer más distribuciones y saber qué ofrece cada una. Es así como llegué a probar Arch Linux, una distribución que no está basada en ninguna otra pero que sí está inspirada en CRUX, una distribución minimalista.

Arch Linux

Arch Linux

Arch es una distribución para arquitecturas i686 y x86_64 que sigue la filosofía KISS (Kimple It Simple Stupid), lo que significa que el usuario es dueño del sistema y por ende puede administrarlo fácilmente, ellos nombran esta filosofía “The Arch Way”. En Arch no hay ciclos de lanzamiento por lo que no se está esperando la última versión estable del sistema, no hay entorno de escritorio predeterminado, en pocas palabras, el usuario hace el sistema a su amaño. Arch está pensado para usuarios no tan novatos en esto de Linux, por lo que su instalación es más complicada que la de ubuntu y al finalizar el proceso únicamente tenemos una terminal y las herramientas para conectarse a una red, se deben instalar el alsa (audio), los controladores de la tarj de video, el servidor x,  el entorno gráfico, etc, etc. Como alguna vez Offray Luna me dijo: “Una cosa es segura: al terminar de instalar Arch, algo habrá aprendido”. Lo cual es muy cierto

Y a todas éstas, cómo es la gestión de paquetes en Arch?.

R:// Fácil y práctica

Resulta que los que estén familiarizados con distribuciones basadas en Debian, sabrán que el gestor de paquetes por excelencia es aptitude y que hay otras formas de instalar paquetes, pero esta es la más sencilla; en Arch contamos con un gestor de paquetes llamado Pacman,  con el que a la vez podemos actualizar todo el sistema fácilmente. Hasta aquí todo parecido a Debian y cia, pero donde realmente toma importancia Arch es con la aplicación de dos conceptos AUR y ABS que básicamente son herramientas para tener a nuestra disposición un abanico más amplio de paquetes, en este caso a través de archivos .tar.gz y uno especial llamado PKGBUILD que contiene la información del paquete que queremos compilar, llevamos a cabo el proceso de compilación con makepkg y esto nos retornará un paquete con extensión .pkg.tar.gz, el cual podemos instalar y gestionar posteriormente con pacman. Este mecanismo de compilación es similar a lo que se conoce en sistemas BSD como ports. En el AUR (Arch User’s Repository) se encuentran los paquetes que los propios usuarios crean y mantienen, una vez son votados por muchas personas positivamente, suben al repositorio community donde pasan a manos de un mantenedor de confianza para llegar a los otros repositorios. Los repositorios (ramas podrían llamarse) de Arch son: Core, Extra, Testing, Community.

En los siguientes posts, les iré comentando distintas experiencias y trucos para una configuración correcta de Arch, esta era una pequeña introducción.

No me queda más por ahora que invitarlos a comentar acá y animarse a probar Arch, una distribución a la que vale la pena cacharriarle como diríamos coloquialmente.

Para las mentes curiosas ávidas de más información acerca de Arch, pueden consultar la “Biblia” de Arch, su Wiki.

Don’t Worry……Be Linux!!!!!!!!