<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>biestado &#187; OE</title>
	<atom:link href="http://biestado.kraptor.com/category/tecnologia/openembedded/feed" rel="self" type="application/rss+xml" />
	<link>http://biestado.kraptor.com</link>
	<description>Al fin y al cabo todo es cuestión de unos y ceros...</description>
	<lastBuildDate>Mon, 03 Nov 2008 16:37:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Completo tutorial y HOWTO de OpenEmbedded</title>
		<link>http://biestado.kraptor.com/2006/09/16/completo-tutorial-y-howto-de-openembedded</link>
		<comments>http://biestado.kraptor.com/2006/09/16/completo-tutorial-y-howto-de-openembedded#comments</comments>
		<pubDate>Sat, 16 Sep 2006 12:31:27 +0000</pubDate>
		<dc:creator>Kraptor</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[OE]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://biestado.kraptor.com/2006/09/16/completo-tutorial-y-howto-de-openembedded</guid>
		<description><![CDATA[Para aquellos curiosos de los sistemas empotrados, he encontrado un HOWTO sobre OpenEmbedded mucho más actualizado que el que yo escribí y donde, además, se aportan muchas más cosas. Podéis entrar a echar un vistazo en el OpemEmbedded HowTo de Werner Schulte. También os podéis pasar por el wiki de OpenZaurus, que siempre hay cosas [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center"><img src="http://wiki.openzaurus.org/wiki/zaurus-wglogo.gif" /></div>
<p>Para aquellos curiosos de los sistemas empotrados, he encontrado un HOWTO sobre OpenEmbedded mucho más actualizado que <a href="http://biestado.kraptor.com/2006/03/15/tutorial-de-openembedded-2">el que yo escribí</a> y donde, además, se aportan muchas más cosas.</p>
<p>Podéis entrar a echar un vistazo en el <a href="http://www.uv-ac.de/openembedded/openembedded.html">OpemEmbedded HowTo de Werner Schulte</a>.</p>
<p>También os podéis pasar por <a href="http://wiki.openzaurus.org/Main_Page">el wiki de OpenZaurus</a>, que siempre hay cosas interesantes.</p>
]]></content:encoded>
			<wfw:commentRss>http://biestado.kraptor.com/2006/09/16/completo-tutorial-y-howto-de-openembedded/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuevo logo para OpenZaurus: ¿DinoZaurus?</title>
		<link>http://biestado.kraptor.com/2006/07/20/nuevo-logo-para-openzaurus-%c2%bfdinozaurus</link>
		<comments>http://biestado.kraptor.com/2006/07/20/nuevo-logo-para-openzaurus-%c2%bfdinozaurus#comments</comments>
		<pubDate>Thu, 20 Jul 2006 19:18:09 +0000</pubDate>
		<dc:creator>Kraptor</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[OE]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://biestado.kraptor.com/2006/07/20/nuevo-logo-para-openzaurus-%c2%bfdinozaurus</guid>
		<description><![CDATA[Hacía mucho tiempo que no pasaba por la web de OpenZaurus y veo que han cambiado tanto la web como su logo. A mi me gusta bastante. ¿Y a vosotros? PD: Sí, ya sé que es del 18 de Mayo la noticia. ¿No dije que hacía mucho tiempo que no me pasaba por allí?]]></description>
			<content:encoded><![CDATA[<p>Hacía mucho tiempo que no pasaba por <a href="http://www.openzaurus.org">la web de OpenZaurus</a> y veo que han cambiado tanto la web como su logo.</p>
<p>A mi me gusta bastante. ¿Y a vosotros?</p>
<div style="text-align: center"><img alt="Nuevo logotipo de OpenZaurus" title="Nuevo logotipo de OpenZaurus" src="http://openzaurus.org/gfx-contest/xaos/logo01.png" /></div>
<p>PD: Sí, ya sé que es del 18 de Mayo la noticia. ¿No dije que hacía mucho tiempo que no me pasaba por allí?</p>
]]></content:encoded>
			<wfw:commentRss>http://biestado.kraptor.com/2006/07/20/nuevo-logo-para-openzaurus-%c2%bfdinozaurus/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial de OpenEmbedded</title>
		<link>http://biestado.kraptor.com/2006/03/15/tutorial-de-openembedded-2</link>
		<comments>http://biestado.kraptor.com/2006/03/15/tutorial-de-openembedded-2#comments</comments>
		<pubDate>Wed, 15 Mar 2006 10:51:29 +0000</pubDate>
		<dc:creator>Kraptor</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[OE]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://biestado.kraptor.com/?p=35</guid>
		<description><![CDATA[Aquí tenéis, por fin, el tutorial de OpenEmbedded que preparé hace unos meses. ¡Espero que os guste!]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://biestado.kraptor.com/uploads//image/noticias/themes/openzaurus.gif" width="70" height="81" alt="Logotipo de OpenZaurus" title="Logotipo de OpenZaurus" /></p>
<p><strong>1-. Introducción:</strong></p>
<p>Durante algún tiempo he estado trabajando con Bitbake/OpenEmbedded, entre otras cosas porque la distribución para mi PDA (una Sharp Zaurus SL-5500 Collie) no se actualiza normalmente, así que decidí utilizar OpenEmbedded para compilar mi propia versión de OpenZaurus.</p>
<p>Bitbake es la herramienta para construir los paquetes. Es algo parecido a &#8220;emerge&#8221; para aquellos que hayáis utilizado Gentoo.</p>
<p>OpenEmbedded son los ficheros que indican cómo deben construirse los paquetes, es decir, los metadatos.</p>
<p>Por tanto, para poder conseguir una versión actualizada, necesitamos instalar ambas herramientas.</p>
<p><span id="more-35"></span></p>
<p><strong>2-. Preparando el sistema:</strong></p>
<p>Lo primero que tenemos que hacer es instalar Bitbake. Para ello tenemos que descargarlo desde los servidores de subversion donde se aloja.</p>
<p>Por tanto tendremos que instalar subversion:</p>
<p>[code] $ sudo apt-get install subversion [/code]</p>
<p><em>NOTA: Subversion es un sistema de control de versiones utilizado en muchísimos proyectos de software libre.</em></p>
<p>Una vez instalado ya podremos descargar Bitbake, pero eso lo veremos más adelante.</p>
<p>Por otro lado para poder trabajar con OpenEmbedded hay que conectar a los repositorios donde se encuentra. Para ello debemos instalar Monotone, que es el sistema de versiones con el que trabajan.</p>
<p>Para descargar Monotone accedemos a [1], donde podremos descargar la última versión.</p>
<p>En mi caso utilizo Ubuntu, y en el sitio de Monotone hay paquetes .deb para instalar la última versión. En el momento de escribir este documento se encuentra en la versión 0.22.</p>
<p>¡Vamos a instalar Monotone!</p>
<p>Primero crearemos un directorio para descargar los paquetes .deb:</p>
<p>[code]<br />
$ sudo mkdir /root/monotone/<br />
[/code]</p>
<p>Ahora lo descargamos:</p>
<p>[code]<br />
$ sudo wget http://venge.net/monotone/downloads/ubuntu-0.22/libboost-date-time1.32.0_1.32.0-6_i386.deb /root/monotone/</p>
<p>$ sudo wget http://venge.net/monotone/downloads/ubuntu-0.22/libboost-filesystem1.32.0_1.32.0-6_i386.deb /root/monotone/</p>
<p>$ sudo wget http://venge.net/monotone/downloads/ubuntu0.22/libboost-regex1.32.0_1.32.0-6_i386.deb /root/monotone/</p>
<p>$ sudo wget http://venge.net/monotone/downloads/ubuntu-0.22/monotone_0.22-0.1_i386.deb /root/monotone/<br />
[/code]</p>
<p><em>NOTA: Si os fijáis, aparte de Monotone hay 3 ficheros de libboost. Esta es una librería de ayuda para programar en C++ que utilizan los chicos de Monotone y que nos sirven ya precompilada. Todo un detalle, ya que si no tendríamos que compilarla nosotros a mano.</em></p>
<p>Una vez hayamos descargado los archivos podemos proceder a instalarlos:</p>
<p>[code]<br />
$ sudo dpkg -i /root/monotone/*.deb<br />
[/code]</p>
<p>Con esto instalaremos tanto las tres partes de la librería libboost como Monotone.</p>
<p><em>NOTA: Sí, es una lata tener que instalar tanto Subversion como Monotone <img src='http://biestado.kraptor.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </em></p>
<p><strong>3-. Instalando las dependencias de OpenEmbedded</strong></p>
<p>Antes de descargar el repositorio de OpenEmbedded nos vamos a asegurar que disponemos de todas las dependencias.</p>
<p>Para ello ejecutamos el siguiente comando:</p>
<p>[code]<br />
$ sudo apt-get install python python-dev python-psyco ccache patch m4 sed \<br />
bison make wget bzip2 cvs gawk libc6-dev g++ subversion sharutils coreutils \<br />
docbook openjade quilt libmpfr-dev libpcre3-dev unzip<br />
[/code]</p>
<p>Tened en cuenta que muchas de las dependencias ya las tendremos instaladas. De todas formas, esto puede tardar un rato en terminar, así que es momento de ir a tomar un café =)</p>
<p><strong>4-. Preparando los directorios</strong></p>
<p>Vamos a crear un directorio que nos sirva como base para instalar cada una de las cosas.</p>
<p>En mi caso lo he llamado OpenEmbedded y está ubicado en mi directorio home:</p>
<p>[code]<br />
$ mkdir OpenEmbedded<br />
$ cd OpenEmbedded<br />
[/code]</p>
<p><em>NOTA: En este directorio instalaremos tanto OpenEmbedded como Bitbake, aunque por comodidad le haya llamado sólo OpenEmbedded.</em></p>
<p><strong>5-. Instalando Bitbake</strong></p>
<p>Como ya hemos dicho antes, Bitbake es la herramienta encargada de construir los paquetes, así que tenemos que instalarla.</p>
<p>Nos vamos a crear un directorio donde instalarla</p>
<p>[code]<br />
$ mkdir bitbake<br />
[/code]</p>
<p>Y luego lo vamos a descargar</p>
<p>[code]<br />
$ svn co svn://svn.berlios.de/bitbake/trunk/bitbake<br />
[/code]</p>
<p><em>NOTA: No es necesario compilar nada, ya que son todo scripts en Python.</em><br />
<em>NOTA: No es necesario estar dentro del directorio bitbake, ya que se descarga dentro de él los ficheros y no en el directorio actual.</em></p>
<p>Finalmente, para poder ejecutar Bitbake es necesario añadir los binarios al PATH</p>
<p>[code]<br />
$ export PATH=${PATH}:~/OpenEmbedded/bitbake/bin/<br />
[/code]</p>
<p><strong>4-. Obteniendo el árbol desde el repositorio</strong></p>
<p>El siguiente paso es obtener OpenEmbedded en sí, tanto Bitbake (que se encarga de construir paquetes) como los ficheros de metadatos (que se encargan de decir cómo deben construirse los paquetes).</p>
<p>Lo primero que haremos serác crear un directorio donde guardar la base de datos de Monotone y el árbol de OpenEmbedded:</p>
<p>[code]<br />
$ mkdir OpenEmbedded<br />
$ cd OpenEmbedded<br />
[/code]</p>
<p>Para obtener la base de datos completa lo mejor es descargar un snapshot reciente. Para ello ejecutaremos el siguiente comando:</p>
<p>[code]<br />
$ wget http://ewi546.ewi.utwente.nl/OE/OE.db.bz2<br />
[/code]</p>
<p>El sitio desde donde lo descargamos es el sitio que indican en el wiki. El fichero descargado contiene la base de datos de Monotone.</p>
<p>Una vez lo hayamos descargado lo descomprimiremos con bunzip2:</p>
<p>[code]<br />
$ bunzip2 OE.db.bz2<br />
[/code]</p>
<p>Y renombraremos el fichero a oe.db, ya que está en mayúsculas el que nos pasan:</p>
<p>[code]<br />
$ mv OE.db oe.db<br />
[/code]</p>
<p>Finalmente, tenemos que obtener las últimas modificaciones al repositorio, ya que desde que subieron el fichero que nos descargamos hasta que nos lo descargamos nosotros hayan actualizado algunas cosas.</p>
<p>Para ello ejecutamos la siguiente linea (<strong>puede tardar un poco!</strong>):</p>
<p>[code]<br />
$ monotone --db=oe.db pull monotone.vanille.de org.openembedded.{dev,dreambox,oz354fam083}<br />
monotone: doing anonymous pull; use -kKEYNAME if you need authentication<br />
monotone: connecting to monotone.vanille.de<br />
monotone: finding items to synchronize:<br />
monotone:   certs |    keys | revisions<br />
monotone:    8934 |      32 |      2317<br />
monotone: bytes in | bytes out | certs in | revs in | revs written<br />
monotone:   523.0k |    119.5k |      608 |     121 |            1<br />
monotone: verifying new revisions (this may take a while)<br />
monotone: bytes in | bytes out | certs in | revs in | revs written<br />
monotone:     1.8M |    126.3k |      608 |     121 |          121<br />
monotone: successful exchange with monotone.vanille.de<br />
[/code]</p>
<p>¡Bien! ¡Ahora ya tenemos la base de datos de Monotone sincronizada!</p>
<p>Aún tenemos que descargar el árbol de ficheros. Para ello utilizamos el comando siguiente:</p>
<p>[code]<br />
$ monotone --db=oe.db checkout --branch=org.openembedded.oz354fam083<br />
[/code]</p>
<p>Se nos creará un directorio para cada versión como véis a continuación:</p>
<p>[code]<br />
$ ls -l<br />
total 176168<br />
-rw-r--r--  1 kraptor kraptor 180204544 2005-09-28 01:55 oe.db<br />
drwxr-xr-x  9 kraptor kraptor       304 2005-09-28 02:05 org.openembedded.oz354fam083<br />
[/code]</p>
<p><em>NOTA: En este caso, como vamos a trabajar con la versión 3.5.4 de OpenZaurus solo vamos a descargar una rama. Si queréis, podéis trastear con la versión en desarrollo.</em></p>
<p>Ok, ya tenemos el repositorio de OpenEmbedded &#8220;casi&#8221; listo para trabajar.</p>
<p><strong>5. Instalando ZGCC 2.95.3</strong></p>
<p>Algunos os preguntaréis: &#8220;¿Para qué? ¿No es posible utilizar el gcc que ya tengo instalado?&#8221;</p>
<p>La respuesta es sí y no.</p>
<p>Sí, realmente se utiliza el GCC que viene instalado en el sistema (realmente lo que se hace es usar este GCC para compilar un ZGCC 3.x que es con el que se compilarán los paquetes para la Zaurus).</p>
<p>No, no se compila todo con el ZGCC que compila automáticamente OpenEmbedded. Necesitamos la versión 2.95.3 porque el kernel que utiliza la Zaurus (los modelos SL-5000 y SL-5500) es el 2.4.18 y sólo compila con esta versión de GCC.</p>
<p>Así que ya sabéis, se compilará todo con la versión 3.x excepto el kernel y es por ello que voy a instalar este cross-compiler en mi sistema.</p>
<p>Si tenéis la una Zaurus más nueva seguramente no necesitaréis esto, ya que las nuevas versiones compilan un kernel 2.6. Se está haciendo trabajo, de todas formas para conseguir un kernel 2.6 para las versiones 5000 y 5500, pero todavía están desarrollándolo. Más información sobre el kernel 2.6 para Poodle y Collie aquí: <a href="http://www.cs.wisc.edu/~lenz/zaurus/">http://www.cs.wisc.edu/~lenz/zaurus/</a></p>
<p>¡Esperemos que dentro de poco podamos disfrutar del kernel 2.6!</p>
<p>Bien, para instalar el kernel lo primero que vamos a hacer es descargar uno ya precompilado por los chicos de OpenEmbedded.</p>
<p>Para ello tendremos que instalarlo como super-usuario:</p>
<p>[code]<br />
$ sudo su -<br />
Password:<br />
[/code]</p>
<p>Lo descargamos:</p>
<p>[code]<br />
$ wget http://handhelds.org/download/projects/toolchain/archive/cross-2.95.3.tar.bz2<br />
--02:34:07--  http://handhelds.org/download/projects/toolchain/archive/cross-2.95.3.tar.bz2<br />
           => `cross-2.95.3.tar.bz2'<br />
Resolviendo handhelds.org... 192.58.209.90<br />
Conectando con handhelds.org[192.58.209.90]:80... conectado.<br />
Petición HTTP enviada, esperando respuesta... 200 OK<br />
Longitud: 36,273,634 [application/x-bzip2]</p>
<p>100%[====================================>] 36,273,634   103.12K/s    ETA 00:00</p>
<p>02:39:52 (102.78 KB/s) - `cross-2.95.3.tar.bz2' saved [36,273,634/36,273,634]<br />
[/code]</p>
<p>Y lo descomprimimos en /usr/local/arm:</p>
<p>[code]<br />
$ mkdir /usr/local/arm/<br />
$ tar xjvf cross-2.95.3.tar.bz2 --directory=/usr/local/arm/<br />
[/code]</p>
<p><em><strong>NOTA IMPORTANTE: Tiene que ser /usr/local/arm/ y no otro, ya que este zgcc busca las librerías en ese directorio y sólo en ese directorio, ya que es el directorio donde el autor original lo compiló. Si no se instala aquí, olvidáos de poder compilar con él.</strong></em></p>
<p>Bien, ya tenemos instalado el compilador necesario para poder compilar los kernel 2.4.18. Más adelante ya configuraremos OpenEmbedded para indicarle que haga uso de este compilador para el kernel.</p>
<p>Una última modificación. Los binarios del compilador se llaman arm-linux-gcc y arm-linux-ld. Para que OpenEmbedded sea capaz de encontrarlos tenemos que añadir la versión como apéndice al nombre. Para ello:</p>
<p>[code]<br />
$ mv /usr/local/arm/2.95.3/bin/arm-linux-gcc /usr/local/arm/2.95.3/bin/arm-linux-gcc-2.95<br />
$ mv /usr/local/arm/2.95.3/bin/arm-linux-ld /usr/local/arm/2.95.3/bin/arm-linux-ld-2.11.2<br />
[/code]</p>
<p>Después de esto, ya podemos abandonar la cuenta de superusuario y volver al directorio de trabajo de OpenEmbedded:</p>
<p>[code]<br />
$ exit<br />
logout<br />
$<br />
[/code]</p>
<p><strong>6. Configurando OpenEmbedded</strong></p>
<p>Lo primero que tenemos que hacer es asegurarnos que estamos en el directorio base de OpenEmbedded:</p>
<p>[code]<br />
$ cd ~/OpenEmbedded/<br />
[/code]</p>
<p>Vamos a crear un directorio donde se realizarán todas las compilaciones:</p>
<p>[code]<br />
$ mkdir build-oz354<br />
[/code]</p>
<p>Antes de continuar, vamos a crear el directorio donde Bitbake (la herramienta de OpenEmbedded encargada de construir los programas) debe descargar los ficheros fuente de los programas:</p>
<p>[code]<br />
$ mkdir sources<br />
[/code]</p>
<p>Después vamos a crear el directorio de configuración:</p>
<p>[code]<br />
$ mkdir build-oz354/conf<br />
[/code]</p>
<p>Vamos a hacer un pequeño inciso de cómo deben quedar los directorios. La estructura, tal y como hemos ido creándola es la siguiente:</p>
<p>[code]<br />
${HOME}<br />
  |<br />
  +- OpenEmbbedded<br />
       |<br />
       +- build-oz354<br />
       |    |<br />
       |    +- conf<br />
       |<br />
       +- org.openembedded.org<br />
       |<br />
       +- org.openembedded.oz354fam083<br />
       |<br />
       +- sources<br />
[/code]</p>
<p>Lo primero que tenemos que hacer es crear la configuración local. Para ello vamos a utilizar un esqueleto de ejemplo que está dentro de la versión que queremos obtener.</p>
<p>En mi caso, como es la versión en 3.5.4 lo copiaremos dentro de /build-354/conf:</p>
<p>[code]<br />
$ cp org.openembedded.dev/conf/local.conf.sample build-oz354/conf/local.conf<br />
[/code]</p>
<p><em>NOTA: Fijáos que el original se &#8220;apellida&#8221; .sample porque es un ejemplo. En cambio el fichero de configuración debe llamarse &#8220;local.conf&#8221;</em></p>
<p>Ahora es momento de editar el fichero para configurarlo a nuestro gusto:</p>
<p>[code]<br />
$ vim build-oz354/conf/local.conf<br />
[/code]</p>
<p>Es importante leer todas las anotaciones, aunque aquí vamos a comentar cómo configurarlo para la Zaurus SL-5500 (Collie).</p>
<p>Primero editaremos la variable DL_DIR, que se encarga de decir dónde se van a descargar nuestros ficheros fuente. Para ello vamos a utilizar el directorio que hemos creado para ello:</p>
<p>[code]<br />
DL_DIR = "${HOME}/OpenEmbedded/sources/"<br />
[/code]</p>
<p>Luego cambiaremos BBFILES para que apunte a los metadatos de los paquetes. Éstos se encuentran dentro de los directorios &#8220;org.openembedded.*/packages/*/*.bb&#8221;. Para ello, como estoy con la versión desarrollo:</p>
<p>[code]<br />
BBFILES := "${HOME}/OpenEmbedded/org.openembedded.dev/packages/*/*.bb"<br />
[/code]</p>
<p><em>NOTA: Sí, es un &#8220;:=&#8221;. Esto indica a python que la línea es única.</em></p>
<p>Como tengo una SL-5500 y voy a crear un kernel 2.4.18 entonces debo descomentar la linea ASSUME_PROVIDED y dejarla así:</p>
<p>[code]<br />
ASSUME_PROVIDED = "virtual/arm-linux-gcc-2.95"<br />
[/code]</p>
<p>Esto indica a Bitbake que busque el compilador que hemos instalado antes para crear los kernels 2.4.</p>
<p>¿Ya os he dicho que tengo una SL-5500? Seguro que sí, pero lo tenemos que indicar en el fichero de configuración:</p>
<p>[code]<br />
MACHINE = "collie"<br />
[/code]</p>
<p>Para compilar una OpenZaurus lo indicamos en DISTRO. También tenemos que poner TARGET_OS a &#8220;linux&#8221;</p>
<p>[code]<br />
TARGET_OS = "linux"<br />
DISTRO = "openzaurus-3.5.4"<br />
[/code]</p>
<p>Finalmente, hay que comentar (o borrar) la última línea. Está puesta porque lo autores de OpenEmbedded quieren que nos leamos bien el fichero =) Yo he optado por comentarla como muestro a continuación:</p>
<p>[code]<br />
#REMOVE_THIS_LINE:="${@oe.fatal('Read the comments in your conf/local.conf')}"<br />
[/code]</p>
<p>Con esto (y un bizcocho) ya tenemos preparado OpenEmbedded.</p>
<p><strong>7. Estableciendo las variables de entorno</strong></p>
<p>Finalmente tenemos que establecer las variables de entorno para poder trabajar con OpenEmbedded. Esto es necesario para que nuestro shell sea capaz de encontrar los binarios de Bitbake.</p>
<p>Para ello necesitamos:</p>
<p>a) Añadir al PATH el compilador que instalamos:</p>
<p>[code]<br />
export PATH="${PATH}:/usr/local/arm/2.95.3/bin/"<br />
[/code]</p>
<p>b) Exportar BBPATH con la información correcta</p>
<p>[code]<br />
export BBPATH="~/OpenEmbedded/build-dev/:~/OpenEmbedded/org.openembedded.dev/"<br />
[/code]</p>
<p>c) Exportar los binarios de Bitbake al path</p>
<p>[code]<br />
export PATH="${PATH}:~/OpenEmbedded/bitbake/bin/"<br />
[/code]</p>
<p><strong>8. Compilando paquetes y creando imágenes</strong></p>
<p>Para empezar vamos a compilar un paquete. El primero que compilemos tardará bastante. Esto es porque la primera vez se compilan el cross-compiler (vamos, el gcc que compilará lo demás) y para ello también se tiene que compilar glibc y todas las dependencias de paquetes. Es por ello que no nos tenemos que desanimar cuando nos pongamos a compilar el primer paquete.</p>
<p><em>NOTA: Es muy importante estar siempre dentro del directorio build-* que hayamos creado para la rama para la que vamos a compilar los paquetes. En este caso, como vamos a compilar paquetes para OpenZaurus 3.5.4 trabajaremos dentro del directorio /oz354/</em></p>
<p>Empecemos por algo sencillo:</p>
<p>[code]<br />
bitbake nano<br />
[/code]</p>
<p>Con esto construiremos el paquete IPK con el editor nano así como todas sus dependencias.</p>
<p>Ahora probemos algo más complicado:</p>
<p>[code]<br />
bitbake gpe-image<br />
[/code]</p>
<p>¡Wow! ¡¡Con esto creamos una imagen completa basada en GPE!! Pero le cuesta un buen rato =) Tened en cuenta que crea todas las dependencias así como la imagen, y GPE (al igual que Opie) es un paquete complejo con muchísimas dependencias.</p>
<p>La lista de programas que podéis compilar están en org.openembedded.dev/packages/*/*.bb</p>
<p>¡Ale! A compilar que son dos días (nunca mejor dicho).</p>
<p><strong>A-. Apéndice de enlaces:</strong></p>
<p>[1] http://venge.net/monotone/ </p>
<p><strong>B-. Licencia</strong><br />
<!--Creative Commons License--><br />
<a rel="license" href="http://creativecommons.org/licenses/by-nd/2.5/"><br />
<img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights20.png"/></a><br/>This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nd/2.5/">Creative Commons Attribution-NoDerivs2.5 License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://biestado.kraptor.com/2006/03/15/tutorial-de-openembedded-2/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Innerzaurus.com: El &#8220;lugar de reunión para los usuarios de Zaurus&#8221;</title>
		<link>http://biestado.kraptor.com/2005/11/07/innerzauruscom-el-lugar-de-reunion-para-los-usuarios-de-zaurus</link>
		<comments>http://biestado.kraptor.com/2005/11/07/innerzauruscom-el-lugar-de-reunion-para-los-usuarios-de-zaurus#comments</comments>
		<pubDate>Mon, 07 Nov 2005 13:42:12 +0000</pubDate>
		<dc:creator>Kraptor</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[OE]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://biestado.kraptor.com/?p=28</guid>
		<description><![CDATA[Gracias a un comentario de Mimecar descubro InnerZaurus.com. Aunque está empezando es muy interesante y está en castellano. Poco a poco va llenándose de contenidos. ¡Un saludo desde aquí a sus webmasters! Seguid así.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://biestado.kraptor.com/uploads//image/noticias/themes/openzaurus.gif" width="70" height="81" alt="Logotipo de OpenZaurus" title="Logotipo de OpenZaurus" /></p>
<p>Gracias a un <a href="http://biestado.kraptor.com/2005/10/10/tutorial-de-openembedded#comment-21">comentario de Mimecar</a> descubro <a href="http://www.innerzaurus.com">InnerZaurus.com</a>. Aunque está empezando es muy interesante y está en castellano. Poco a poco va llenándose de contenidos. </p>
<p><strong>¡Un saludo desde aquí a sus webmasters!</strong> Seguid así.</p>
]]></content:encoded>
			<wfw:commentRss>http://biestado.kraptor.com/2005/11/07/innerzauruscom-el-lugar-de-reunion-para-los-usuarios-de-zaurus/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenZaurus 3.5.4RC1</title>
		<link>http://biestado.kraptor.com/2005/11/07/openzaurus-354rc1</link>
		<comments>http://biestado.kraptor.com/2005/11/07/openzaurus-354rc1#comments</comments>
		<pubDate>Mon, 07 Nov 2005 13:34:26 +0000</pubDate>
		<dc:creator>Kraptor</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[OE]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://biestado.kraptor.com/?p=27</guid>
		<description><![CDATA[Con dos días de retraso debido al fin de semana y gracias a un comentario de mozz me entero de la salida de OpenZaurus 3.5.4RC1. Ya podéis descargarla desde aquí. A ver si la pruebo durante esta semana. Mientras tanto podéis leer un pequeño análisis aquí.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://biestado.kraptor.com/uploads//image/noticias/themes/openzaurus.gif" width="70" height="81" alt="Logotipo de OpenZaurus" title="Logotipo de OpenZaurus" /></p>
<p>Con dos días de retraso debido al fin de semana y gracias a un comentario de mozz me entero de <a href="http://openzaurus.org/wordpress/2005/11/05/354-release-candidate/">la salida de OpenZaurus 3.5.4RC1</a>. Ya podéis <a href="http://www.openzaurus.org/official/unstable/3.5.4-RC/">descargarla desde aquí</a>.</p>
<p>A ver si la pruebo durante esta semana. Mientras tanto <a href="http://http://www.innerzaurus.com/CMS/index.php?option=com_content&#038;task=view&#038;id=81&#038;Itemid=40">podéis leer un pequeño análisis aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://biestado.kraptor.com/2005/11/07/openzaurus-354rc1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial de OpenEmbedded</title>
		<link>http://biestado.kraptor.com/2005/10/10/tutorial-de-openembedded</link>
		<comments>http://biestado.kraptor.com/2005/10/10/tutorial-de-openembedded#comments</comments>
		<pubDate>Mon, 10 Oct 2005 11:07:59 +0000</pubDate>
		<dc:creator>Kraptor</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[OE]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://biestado.kraptor.com/2005/10/10/tutorial-de-openembedded</guid>
		<description><![CDATA[Como ya comenté en otro post, estoy preparando un documento en el que explico cómo configurar, actualizar y generar distribuciones (en este caso OpenZaurus 3.5.4) con OpenEmbedded (realmente habría que decir BitBake). Si puedo, también aprovecharé para explicar cómo compilar nuestras propias aplicaciones para la Zaurus y daré una visión general de cómo funciona el [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://biestado.kraptor.com/uploads//image/noticias/themes/openzaurus.gif" width="70" height="81" alt="Logotipo de OpenZaurus" title="Logotipo de OpenZaurus" /></p>
<p>Como ya comenté en <a href="http://biestado.kraptor.com/2005/10/04/%c2%bfcansado-de-openzaurus-353">otro post</a>, estoy preparando un documento en el que explico cómo configurar, actualizar y generar distribuciones (en este caso OpenZaurus 3.5.4) con <a href="http://oe.handhelds.org">OpenEmbedded</a> (realmente habría que decir BitBake). Si puedo, también aprovecharé para explicar cómo compilar nuestras propias aplicaciones para la Zaurus y daré una visión general de cómo funciona el sistema de paquetes IPK.</p>
<p>La razón del retraso es que <strong>actualmente hay muchos paquetes rotos</strong> en OpenEmbedded y, hasta que no consiga compilar una imagen con <a href="http://gpe.handhelds.org/">GPE</a> y otra con <a href="http://opie.handhelds.org/">OPIE</a> preinstalados (y con un poco de suerte con <a href="http://www.enlightenment.org/Enlightenment/DR17/">E17</a>), no daré el tutorial por finalizado.</p>
<p>Tendréis que esperar un poco más. Perdonad las molestias.</p>
]]></content:encoded>
			<wfw:commentRss>http://biestado.kraptor.com/2005/10/10/tutorial-de-openembedded/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

