Om 2007.2/es

From Openmoko

Jump to: navigation, search
Om 2007.2

(Other distributions)


Om 2007.2 es una de las muchas distribuciones que actualmente funcionan en los teléfonos Openmoko. Puedes comparar una distribución con un Sistema Operativo de un ordenador normal. Esto dota al teléfono del software necesario para trabajar con el. Para más información acerca de los diferentes posibilidades existentes, visita el apartado distribuciones


Om 2007.2 es la segunda versión de la distribución de Openmoko. El desarrollo comenzó el 2007-07-26. Om 2008.8 es el sucesor de este paquete de esta agrupación de software.

El objetivo de esta versión es un grupo de mejoras de las aplicaciones PIM destinadas a subsanar bastantes problemas de usabilidad de diseño de la primera generación, unas guias de estilo más formales en el UI y un cierto número de cambios en el sistema compilado. La última parte introduciría software más reciente en sincronía con las actualizaciones de org.openembedded.dev.

Un anuncio oficial fué realizado por Sean Moss-Pultz el 20 de Agosto:

(Inicialmente fue llamado OM-2008 en SVN pero fue renombrado poco despues.)

Contents

Instalación

Si deseas instalar esta distribución de software en tu dispositivo, has de seguir los siguientes pasos:

  • Descargar la imagen reciente de Om2007.2 en la página Downloads
  • Flash a tu Neo FreeRunner
home screen of Om 2007.2

Compilando 2007.2

Por qué compilar

Antes de complicarte, detente un momento y planteate por qué deseas compilar una imagen de la distribución de Openmoko. Tienes la opción de hacerlo, un kernel y un desarrollador de aplicaciones y deseas desarrollar tu propio paquete -- en ese caso compilar Openmoko es completamente innecesario y una perdida de tiempo. A lo mejor deberías plantearte utilizar la Toolchain de Openmoko para construir únicamente aquello que te interese.

Como compilar

La MokoMakefile ahora permite compilar imagenes de Om 2007.2. Si utilizas esta nueva versión de MokoMakefile, puedes ignorar lo que sigue y continuar compilando Om 2007.2 de la misma forma que compilabas imagenes anteriormente (i.e. al igual que MokoMakefile). Asegurate que pones correctamente la generación en el principio del archivo.

Siguiendo los pasos de OpenEmbedded getting started. Te sugerimos que como utilices como poco Bitbake 1.8.8.

NOTE: En lugar de utilizar git.openmoko.org (como se indica en OE GettingStarted), por favor asegurate de utilizar git.openmoko.org como monotone server. Esto te asegurará que tienes una versión funcional de metadata y que se compilará con éxito


Pon lo siguiente en tu local.conf

BBFILES = "${HOME}/oe/org.openembedded.dev/packages/*/*.bb"

MACHINE = "om-gta01"
DISTRO = "openmoko"

ENABLE_BINARY_LOCALE_GENERATION = "1"
GLIBC_GENERATE_LOCALES = "en_GB.UTF-8"

Para dispisitivos multi-nucleo, se puede añadir lo siguiente para incrementar la velocidad (los números pueden ser ajustados basandose en la cantidad actual de nucleos):

PARALLEL_MAKE = "-j 4"
BB_NUMBER_THREADS = "4"

Para liberar espacio después de las compilaciones, añadir:

INHERIT += "rm_work"

Sustituye "${HOME}/oe" por el lugar donde reside tu directorio "org.openembeded.dev". Para el significado de las otras echa un vistazo a conf/local.conf.sample

Ejecuta bitbake <nombre del paquete> (e.g. openmoko-devel-image).

Como habilitar autorev

Primero aplica el siguiente parche a bitbake.

http://lists.linuxtogo.org/pipermail/openembedded-devel/2007-September/003035.html

Añade la siguiente línea en tu local.conf

 require conf/distro/include/moko-autorev.inc

Entonces ejecuta de forma normal bitbake. Openmoko compilará en este momento con las últimas revisiones de SVN.

Problemas al compilar

Certificado erroneo

Podrías obtener algo parecido a esto mientras se analizan los recipes de bitbake:

Error validating server certificate for 'https://libw100.svn.sf.net:443':
 - The certificate hostname does not match.
 Certificate information:
  - Hostname: *.svn.sourceforge.net
  - Valid: from Fri, 27 Oct 2006 12:05:58 GMT until Sun, 28 Oct 2007 13:05:58 GMT
  - Issuer: Equifax Secure Certificate Authority, Equifax, US
  - Fingerprint: f2:6c:fe:bb:82:92:30:09:72:dd:1c:b3:e7:56:69:c7:7a:df:67:3e

Corresponde a un error en el archivo de bitbake. No se debería utilizar el nombre corto para sourceforge (sf.net) cuando los certificados son para nombres de host exactos. Acepta el certificado y en este caso todo irá bien.

openmoko-libs FTBFS

Algunas aplicaciones no han sido totalmente modificadas para ser compiladas con las nuevas librerías de Openmoko y todabía necesitan los paquetes de viejo-estilo openmoko-libs. libmokogsm que es necesario para openmoko-libs fallará entonces en la compilación. Como solución puedes eliminar las aplicaciones no transportadas que necesitan openmoko-libs haciendola de esta forma innecesaria. Para hacerlo edita packages/tasks/openmoko-taks.bb y busca las siguientes líneas:

.
.
.
 openmoko-terminal \
 matchbox-panel-2 \
 matchbox-panel-2-applets \
 matchbox-applet-inputmanager \
#  openmoko-appmanager \
 matchbox-keyboard \
 matchbox-stroke \
 openmoko-keyboard \
.
.
.

Ahora pon una almohadilla (#) antes de openmoko-terminal y openmoko-keyboard. puedes verificar que openmoko-libs ya no son necesarias utilizando bitbake -g openmoko-devel-image (= crea un gráfico de dependencias). No debería haber ninguna mención a openmoko-libs en el archivo task-depends.dot. por favor ten en cuenta que el terminal gráfico y el teclado virtual no serán accesibles en este momento. Puedes tener acceso al terminal siguiendo la guía USB Networking. Para la entrada de teclado añade el switch -usbdevice keyboard en Qemu.

gtk+ fallos compilando w/ gtkcombobox.c

Si obtienes estos errores:

gtkcombobox.c: In function 'gtk_combo_box_size_request':
gtkcombobox.c:1859: warning: unused variable 'font_desc'
gtkcombobox.c:1858: warning: unused variable 'metrics'
gtkcombobox.c:1857: warning: unused variable 'context'
gtkcombobox.c:1855: warning: unused variable 'arrow_size'
gtkcombobox.c:1854: warning: unused variable 'font_size'
gtkcombobox.c: In function 'gtk_combo_box_size_allocate':
gtkcombobox.c:1962: error: 'arrow_size' undeclared (first use in this function)
gtkcombobox.c:1962: error: (Each undeclared identifier is reported only once
gtkcombobox.c:1962: error: for each function it appears in.)
gtkcombobox.c:1965: error: 'font_desc' undeclared (first use in this function)
gtkcombobox.c:1966: error: 'context' undeclared (first use in this function)
gtkcombobox.c:1967: error: 'metrics' undeclared (first use in this function)
gtkcombobox.c:1969: error: 'font_size' undeclared (first use in this function) 

Dirigete a tu directorio /build/tmp/work/fic-gta01-angstrom-linux-gnueabi/gtk+-2.10.14-r3/gtk+-2.10.14/gtk y parchea gtkcombobox.c con lo siguiente:

Agradecimientos a rmoravcik en #openmoko (parche obtenido de http://pastebin.ca/654717 )

--- gtkcombobox.c       2007-08-12 20:30:07.000000000 +0200
+++ gtkcombobox.c       2007-08-12 20:29:58.000000000 +0200
@@ -1948,6 +1948,12 @@
 gtk_combo_box_size_allocate (GtkWidget     *widget,
                             GtkAllocation *allocation)
 {
+  gint font_size;
+  gint arrow_size;
+  PangoContext *context;
+  PangoFontMetrics *metrics;
+  PangoFontDescription *font_desc;
+
   GtkComboBox *combo_box = GTK_COMBO_BOX (widget);
   gint focus_width, focus_pad;
   GtkAllocation child;


compilando glibc falla un segfault en QEMU

Si tu compilación es abortada y ves algo como esto:

NOTE: package glibc-2.5: started
NOTE: package glibc-2.5-r6: task do_package: started
NOTE: preparing tree for binary locale generation
NOTE: generating locale en_US (UTF-8)
qemu: uncaught target signal 11 (Segmentation fault) - exiting

...

NOTE: Tasks Summary: Attempted 271 tasks of which 0 didn't need to be rerun and 1 failed.
ERROR: '/home/moko/oe/org.openembedded.dev/packages/glibc/glibc_2.5.bb' failed

Intenta editar tu archivo local.conf. Cambia:

ENABLE_BINARY_LOCALE_GENERATION = "1"

a

ENABLE_BINARY_LOCALE_GENERATION = "0"

y vuelve a iniciar la compilación. Esto puede tener algún efecto sobre la internalización (verás un aviso indicandolo), pero por lo menos la compilación continuará. Gracias a rwhitby por el truco.

Opcionalmente, como fue sugerido por XorA en #openmoko, si estás trabajando con una distribución orientada a 64-bit, intenta forzar una revisión diferente de QEMU, tambien en el local.conf:

PREFERRED_VERSION_qemu-native = "0.9.0+cvs20070701"
SRCDATE_qemu-native = 20070701


libxml2-native falla con errores de xmlCatalogPtr

Dirigete a tu directorio build/tmp/work/i686-linux/libxml2-native-2.6.29-r1/libxml2-2.6.29/include/libxml/ y parchea xmlversion.h con lo siguiente:

--- xmlversion.h        2007-08-17 10:45:42.000000000 +0100
+++ xmlversion.h        2007-08-17 10:51:36.000000000 +0100
@@ -219,7 +219,7 @@
  *
  * Whether the Catalog support is configured in
  */
-#if 0
+#if 1
 #define LIBXML_CATALOG_ENABLED
 #endif

En mi sistema el directorio de libxml2-native-2.6.29-r1 está en un directorio llamado i686-linux, pero el tuyo puede ser diferente. Creo que este parche puede ser una solución para hacer la compilación de libxml2-native. No estoy seguro de las consecuencias que puede tener habilitar el soporte para el catalogo XML.

Imagenes pre-compiladas

Estructura del directorio del buildhost

El contenido del directorio del servidor de compilaciones de Openmoko esta disponible en

Este contiene

  • cache
    • Internal caching data, not for human interpretation
  • cross
    • The cross-compilation toolchain used. You can download this and use it on your local machine.
  • deploy
    • deploy/images
      • The filesystem, kernel and bootloader images to be flashed into NAND
    • deploy/ipk
      • the .ipk packages
  • rootfs
    • the extracted root filesystem. Please use the images from deploy/images instead
  • staging
    • no user servicable parts inside
  • stamp
    • internal state data
  • work
    • the actual build trees (including patches source code and binaries) of the individual packages

Actualizando tu imagen

Ahora que tienes una imagen 2007.2 funcional en tu Neo, querras tenerla actualizada. Afortunadamente, ipkg está ya configurado para obtener los paquetes actualizados del servidor.

En el teléfono, en el terminal (o via ssh), si tienes acceso directo a internet y resolución de DNS configura en /etc/resolv.conf:

ipkg update && ipkg upgrade

Actualizará los paquetes que tienes instalados a su versión más reciente. Echale tambien un vistazo a las fuentes alternativas/adicionales en downloads.

Si estas compilando tus propios paquetes e imágenes, puedes tambien ejecutar un simple httpd en tu propio host para pasarte tus propios archivos ipkg a tu Neo.

En tu host compilado, por ejemplo:

thttpd -d <ruta_a_moko/tmp/deploy/glibc/ipk> -p 8080

servirá tus paquetes en el puerto 8080.

Entonces, en el Neo, crea un nuevo archivo en /etc/ipkg/local-feed.conf con estos contenidos:

src/gz local-all http://192.168.0.200:8080/all
src/gz local-armv4t http://192.168.0.200:8080/armv4t
src/gz local-om-gta01 http://192.168.0.200:8080/om-gta01

y ipkg en el Neo (update-upgrade) cogerá los archivos subidos a tu repositorio local (asumiendo que la dirección IP es 192.168.0.200, por defecto como en la configuración USB Networking) además de los archivos del servidor de Openmoko.

O mejor todavía, cambia las direcciones IP comentadas arriba por la dirección IP de la configuración de la eth0 de tu dispositivo (en vez de la dirección IP del usb0), y entonces podrás acceder a tu repositorio con tu Neo conectado a cualquier máquina a través de tu red local, o vía bluetooth.

Tambien, si estas compilando tus propios paquetes e imágenes desde la base de datos OE que no forman parte de Openmoko por defecto, puedes instalar dichos paquetes como te comentamos a continuación:

En el host compilado:

bitbake <nombre_del_paquete>
bitbake -crebuild package-index

En el Neo:

ipkg update
ipkg install <nombre_del_paquete>

El nuevo paquete no debería ser mostrado en el menú de programas hasta que reinicies las X.

FAQ

Q: What are differences between 2007.1 and 2007.2?

  • UI redesigned for small and recessed screen
  • Simplified visuals for performance
  • Simplified UI
  • More interactions including finger scrolling
  • openmoko-today rewritten; works as application launcher and task manager as well
  • neod takes care of basic powermanagement, supports AUX and POWER buttons for navigation / additional functionality
  • Updated upstream packages

Q: Where to get snapshot images?

  • Official snapshots and ipkg repository:

Q: Mis fuentes de mrxvt (terminal) son demasiado grandes.

Edita src/feature.h y cambia MIN_XFT_FONT_SIZE a un valor más pequeño:

#define MIN_XFT_FONT_SIZE           (2)

y recompila mrxvt & openmoko-devel-image.

Para terminar edita /etc/mrxvt/mrxvt.conf

Mrxvt.xftSize: 4
Mrxvt.xftHint: 1
Personal tools