Building Software Image/es

From Qi-Hardware
Jump to: navigation, search

Se usa la distribución Linux de sistemas integrados OpenWrt para las imagenes oficiales.

Actualmente usamos nuestro propio repositorio para el desarrollo, pero nos fusionamos a la rama principal de OpenWrt a menudo.

En caso de tener problemas relacionados con OpenWrt, por favor intenta echar un vistazo a la Wiki de OpenWrt en español, especial


En la siguiente pagina wiki de OpenWrt How to build OpenWrt podrás encontrar información sobre el como funciona la construcción de sistemas con OpenWrt , los requerimientos y como configurarlo correctamente.

Contents

[edit] Prerequisitos

Se deben instalar estos paquetes antes de crear la imagen del software:

$ sudo aptitude install sed wget cvs subversion git-core coreutils unzip texi2html texinfo libsdl1.2-dev docbook-utils \
gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath flex libncurses5 \
libncurses5-dev libxml-simple-perl zlib1g-dev pkg-config gettext libxml-simple-perl guile-1.8 cmake

[edit] Construyendo una imagen desde el codigo fuente con OpenWrt

Descargamos el código fuente del repositorio para construir las imágenes así:

$ git clone git://projects.qi-hardware.com/openwrt-xburst.git # clone the git repository
$ cd openwrt-xburst # change-dir into the sourcecode directory
$ git fetch origin
$ git checkout --track -b xburst origin/xburst # checkout the 'xburst'-branch

OpenWrt usa los llamados "feeds" que proporcionan paquetes OpenWrt para el software que esta fuera del sistema mínimo por defecto.

Los "feeds" están definidos dentro de los archivos <feeds.conf> y <feeds.conf.default> (el primero reemplaza al segundo si existe), de todas maneras no se debería necesitar tocarlos.

Para incluir los feeds al sistema simplemente hacer:

$ scripts/feeds update -a && scripts/feeds install -a

Para construir una imagen basada en las oficiales, descargarte el archivo config de la ultima versión oficial que haya salido:

$ wget "http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND/latest/config" -O .config

Para seleccionar/eliminar paquetes que irán en la imagen que vamos a construir, puedes usar el menú interactivo para configuración:

$ make menuconfig

Y al final , la creamos:

$ make

Con un poco de suerte todo ira sin errores y el resultado sera una imagen lista para flashear y usar en: bin/xburst/

Yujuuu! :)

Las imagenes oficiales podéis encontrarlas en Imagenes Oficiales y su descripción en [Official Software Image]


[edit] xburst-tools (comandos usbboot)

Las [xburst-tools] son necesarias para flashear las imágenes en el NanoNote.

Para compilarlas desde el código fuente haced los siguiente:

$ git clone git://projects.qi-hardware.com/xburst-tools.git
$ cd xburst-tools/usbboot
$ ./autogen.sh
$ ./configure --prefix=/usr --sysconfdir=/etc
$ make
$ sudo make install

Voila!

Los binarios ya compilados los podéis encontrar aquí: xburst-tools


[edit] Porting projects to OpenWrt

Por favor, consultad:

[edit] Guia breve

Definitivamente deberíais consultar lo anterior pero a grandes rasgos es:

  • Tener un sistema de compilación (Esto te permitirá compilar imágenes enteras y/o programas individuales)
  • Cuando ejecucutes make menuconfig, selecionar paquetes que no estén seleccionados con 'M', y estar seguros de que podéis compilar/instalarlos (mirad si se han generado en bin/xburst/packages, copiarlos al NanoNote, y usar opkg en el para instalarlos):
 make package/packagename/compile V=99
  • Añadir vuestros propios Makefiles en la carpeta de paquetes adecuada, y hacer lo anteriormente mencionado. Entonces mirar como falla al compilar porque el creador no ha pensado en el cross-compiling!, arreglar los problemas y seguir intentando.

[edit] Ejemplo

Podeis ver un ejemplo de como se porta una aplicación sencilla aquí: Mi primer port en Ben NanoNote: gnuchess (Tutorial)

[edit] openwrt-package

  • Algunos paquetes de NanoNote no incluidos en OpenWrt estan en qi-hardware-packages
  • Una idea podría ser clonar este repositorio y añadir nuevos ports a el (con los symlinks apropiados) para facilitar el mantenimiento

[edit] feeds.conf

[edit] FAQ

  • Leer el FAQ de OpenWrt primero :-)
  • Donde esta el código fuente?

El repositorio git esta en projects.qi-hardware.com

  • Donde se generan (bootloader kernel rootfs)?
 /PATH/A/OPENWRT/bin/xburst
  • Donde esta la toolchain?
 /PATH/A/OPENWRT/staging_dir/toolchain-mipsel_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin
  • Como añadir paquetes al la rootfs?

Seleccionándolos como '*' en el menuconfig

  • Donde estan los paquetes de Qi-hardware?
 añade "src-git qipackages git://projects.qi-hardware.com/openwrt-packages.git" a tu archivo feeds.conf
  • Como se accede al menuconfig del Kernel?
 make kernel_menuconfig
  • Como compilar solo un paquete?
 make packages/PACKAGE_NAME/compile V=99
 make packages/PACKAGE_NAME/{clean,compile} V=99
Personal tools
Namespaces
Variants
Actions
Navigation
interactive
Toolbox
Print/export