
         ooooo                     oo     o  o               oo     o
        M"   "Mo                    Mo  oM"  M                Mo  oM"
       M           oM""Mo  oM""Mo    "Mo"    Mo"""o  oM""Mo    "Mo"
       M    """M   MooooMM MooooMM   oMMo    M    "M M    M    oMMo
       "o     oM   M    o  M    o   oM  Mo   M    oM M    M   oM  Mo
        "MoooM"M   "MooM"  "MooM"  M"    "M  M"ooo"  "MooM"  M"    "M



| ACERCA DE...
| ~~~~~~~~~~~~

Geexbox es un software que convierte tu ordenador en una mquina de
reproducir DivX. De hecho, es un CD auto-arrancable que permite ver
pelculas o escuchar msica. Soporta multitud de formatos, tales como avi,
mpeg, divx, ogm, rm, mp3, ogg, dvd, vcd y cdda. Tambin soporta algunos
mandos a distancia IR y las salidas de TV de ciertas tarjetas. Este archivo
contiene los ficheros necesarios para generar una imagen iso personalizada
de GeexBoX.


| REQUISITOS
| ~~~~~~~~~~

Para generar una iso GeeXboX, necesitas:
  - un sistema GNU/Linux con mkisofs y mkzftree.
  - un sistema windows.

Para instalar GeeXboX, necesitars:
  - un sistema GNU/Linux con syslinux.

Para construir GeeXboX, te harn falta algunas utilidades clsicas:
  - un sistema GNU/Linux funcionando.
  - el compilador gcc para el lenguaje C.
  - GNU make.
  - el comando patch.
  - el ensamblador nasm.
  - bzip2 y gzip.
  - mkfs.ext2 y mkfs.vfat.
  - la utilidad de descarga wget (no necesaria para todo el paquete GeeXboX).
  - mkisofs y mkzftree para construir la imagen iso.
  - mkzftree para comprimir los archivos en la imagen iso.
  - cdrecord (para tostar la iso).

Y tambin 500 megas de espacio libre en disco.


| PERSONALIZACIN
| ~~~~~~~~~~~~~~~

Cuando GeeXboX est instalado en un disco duro o es generado, resulta muy
fcil personalizarlo.

Puedes aadir algunos cdecs propietarios como rv9 o wmv9, copindolos
en el directorio iso/GEEXBOX/codecs. Puedes encontrar estos cdecs en el
paquete http://www.mplayerhq.hu/MPlayer/releases/codecs/ .

Ficheros tiles en el paquete de cdecs:
  * Cdecs de Real (usados para reroducir ficheros rv9 por ejemplo) : atrc.so.6.0,
     cook.so.6.0, sipr.so.6.0, drv3.so.6.0, drv4.so.6.0.
  * Cdecs de Windows Media (wmv9/wma9) : wma9dmod.dll y wmv9dmod.dll.

Tambin puedes modificar muchas opcionesa travs de la edicin de algunos
ficheros de texto.

* Idioma :
    Puedes seleccionar fcilmente tu idioma de men favorito editando
    el fichero GEEXBOX/etc/lang. Esto no tiene efecto en el lenguaje del DVD
    (mira en la seccin de MPlayer). Si tu idioma no est disponible, puedes
    traducir el men a tu propio idioma, lo que conlleva la creacin de los
    archivos GEEXBOX/etc/mplayer/menu_LANG.conf y
    GEEXBOX/usr/share/mplayer/help_LANG.txt.

* MPlayer :
    Aqu es donde puedes hacer la mayor parte de las configuraciones y ajustes.
    Las opciones se encuentran en el fichero packages/MPlayer/mplayer.conf.
    Quizs quieras modificar opciones como tamao de fuente del OSD
    (subfont-text-scale). Tambin puedes aadir muchas opciones como idioma
    por defecto para DVD (ej: alang=es,en). El mejor sitio para encontrar
    estas opciones es en la pagina man de MPlayer, para usuarios de linux
    (man -l build/MPlayer-*/DOCS/mplayer.1). Tambien deberias echar un vistazo
    a la documentacin de MPlayer (http://mplayerhq.hu/DOCS/).
    Otro archivo que quiz quieras modificar es packages/MPlayer/menu.conf.
    Puedes quitar elementos del men que no necesites, o, por ejemplo,
    traducirlos a tu propio idioma.
    El ultimo archivo que puedes mirar es packages/MPlayer/build, que contiene
    la seleccin de opciones que estn compiladas en MPlayer.

* Salida de TV :
    La activacin de la salida de TV se consigue con la ayuda de mltiples
    programas dedicados a las diferentes marcas de tarjetas.
    Actualmente usamos atitvout para las tarjetas Ati, s3switch para las
    tarjetas S3 y nvtv para las tarjetas Nvidia (y posiblemente las intel
    i810 y las 3dfx). La configuracion de estos programas se realiza en
    config/tvout. Ah puedes seleccionar el estandar de TV que quieras
    (pal para Espaa, ntsc en Iberoamrica...) y modificar otras opciones
    especficas de nvtv.

* Lirc :
    Puedes elegir uno de los controladores soportados editando el archivo
    GEEXBOX/etc/remote. Lirc no puede controlar ATI Rempote Wonder y est
    siempre activado, asi que no tienes que modificar nada para usarlo.
    Si quieres cambiar la asignacin de teclas para el mando a distancia,
    mira en el fichero GEEXBOX/etc/lirc/lircrc_REMOTE.

* Red :
    Puedes configurar la red en el archivo GEEXBOX/etc/network.
    Ah puedes escoger la direccin IP usada por GeeXboX (por defecto
    se usa DHCP, y si no funciona, la IP cambia a 192.168.0.54.). Tambin
    puedes establecer un usuario y contrasea para conectarse a recursos
    compartidos en mquinas windows (por defecto se conecta nicamente a los
    recursos que permitan conexiones annimas).


| GENERACIN
| ~~~~~~~~~~

Primero hecha un vistazo a la seccin de personalizacin detallada ms arriba.

Para generar la iso nicamente tienes que ejecutar en Linux
   ./generator.sh

o
  generator.bat
bajo windows.


| INSTALACIN
| ~~~~~~~~~~~

Lo primero que necesitas es crear una particin FAT16 con unos 16 MB libres.

A partir de aqu, puedes instalar GeeXboX bajo Linux ejecutando
  ./installator.sh
Responde a todas las preguntas y ten mucho cuidado con ellas. Lelas dos veces
y, si no entiendes alguna, para la instalacin.


| COMPILANDO
| ~~~~~~~~~~

Lo primero es echar un vistazo a la seccin de configuracin, ms arriba (al
menos, la parte general y la que se refiere al tostado en CD).

A continuacin, puedes crear la iso bsicamente con:
  make
O puedes quemarla directamente en CD con:
  make burn

Cuando se haya terminado, puedes ahorrar espacio de disco limpiando el rbol
de compilacin:
  make clean
o haciendo una limpieza total, incluso borrando las fuentes descargadas:
  make distclean

Existen tambin otros comandos ms avanzados si quieres enredar en las tripas
de GeeXboX:
  scripts/get package        # descargar el paquete
  scripts/unpack package     # desempaqueta y prepara el paquete
  scripts/build package      # construye el paquete
  scripts/install package    # instala el paquete con el prefijo $INSTALL
  scripts/clean package      # limpia el rbol de fuentes del paquete
  make exec                  # lanza directamente GeeXboX en una jaula
                             # AVISO: esta caracterstica es ltamente experimental
                             # sala a tu propio riesgo.

Si has hecho una versin modificada de GeeXboX, puedes construir fcilmente un
pequeo tar.bz2 con:
  make dist
o un tar completo (conteniendo todos los fuentes) con:
  make fulldist
o un generador geexbox con:
  make generator
o un instalador geexbox con:
  make installator


| CONFIGURACIN
| ~~~~~~~~~~~~~

* Opciones globales:
    ste es el primer apartado en el que debes fijarte antes de intentar
    compilar GeeXboX. Se encuentra en el archivo config/options, y debera
    explicarse por s mismo. En este fichero puedes seleccionar la familia
    de tu CPU, el tema a usar, y si quieres utilizar fuentes truetype o no.
    Adems, deberas modificar la configuracin de la grabadora de CD para
    poder grabar directamente la ISO.

* Linux:
    El archivo packages/linux/linux.conf es una configuracin clsica de Linux.
    Puedes editarlo a mano, o tambin puedes ejecutar scripts/unpack linux
    y hacer make menuconfig -C build/linux-* (o utilizar el mtodo que
    prefieras en vez de menuconfig). Es conveniente que hagas una copia de
    seguridad de build/linux-*/.config en packages/linux/linux.conf.
    Lo ms "difcil" que puede ocurrir es mantener tamao del kernel lo
    suficientemente reducido como para que quepa en una imagen de un disquete
    de arranque.

* Lirc:
    Lirc te permite controlar GeeXboX a travs de un mando a distancia. Lo
    primero que debes hacer es escoger el archivo que describe tu mando en
    concreto en build/lirc-*/remotes (despues de hacer scripts/unpack lirc) y
    aadirlo a packages/lirc/install. A partir de aqu, escoge un dispositivo
    (por defecto es /dev/ttyS0, o COM1) y el driver lirc y colcalos en un
    archivo con el nombre packages/lirc/lircd_$REMOTE. Entonces podrs escoger
    la asignacin de teclas en packages/lirc/lircrc_$REMOTE. En cada asignacin
    tienes que seleccionar un botn (coge los nombres del archivo de definicin
    del mando a distancia) y asociarle una accin. Esta accin pertenece a
    MPlayer, y puedes encontrar un listado en
    build/MPlayer-*/DOCS/documentation.html#commands.


| HACKING
| ~~~~~~~

El primer sitio donde debes mirar es en el script de inicializacin.
De hecho, existen dos scripts de inicializacin. El primero est en
packages/initrd/linuxrc, aunque no deberas necesitar modificarlo.
El segundo se encuentra en config/init y es donde puedes personalizar.

Lo siguiente que podra interesarte es la creacin de un nuevo "paquete".
Un paquete consiste en una gran cantiad de scripts que han de seguir algunas
reglas. Todos los scripts deben funcionar sobre un directorio llamado como
el programa que quieres empaquetar, dentro del directorio packages.
Una lista de scripts que puedes crear:
 - url: slo una lista de urls para conseguir los fuentes del programa.
 - unpack: qu hacer despus de desempaquetar los fuentes. Por ejemplo,
            puedes modificar algunos ficheros de configuracin. sto no
            incluye aplicar parches.
 - need_build: es llamado cuando el paquete ha terminado de compilarse, con
            el objetivo de estar seguros de que no necesita volver a cons-
            truirse. Debe borrar el archivo .stamps/"nombre del paquete"/build,
            si el paquete debe ser recompilado.
 - build: todos los pasos necesarios para compilar el programa.
 - install: todos los pasos necesarios para instalar el programa. El prefijo
            de instalacin debe ser $INSTALL.

Cuando un archivo de las url se llama patch-nombre_del_programa-... se aplica
automticamente a los fuentes desempaquetados del programa.

Adems, debes recordar que el software que corre en GeeXboX debe ser compilado
con el wrapper gcc de uClibc.

Finalmente, el mejor modo de hacer un paquete es observar cmo estn hechos
otros paquetes.


| LICENCIA
| ~~~~~~~~

Todos los programas usados por GeeXbox estan protegidos por sus respectivas
licencias. Todos ellos son software libre, y la mayora estn cubiertos por la
Licencia Pblica General GNU (GPL).
El propio GeeXboX, incluyendo todos los scripts que son utilizados en el
proceso de construccin y compilacin, estn cubiertos por la Licencia Pblica
General GNU (GPL).
