Home

Modificar el Kernel o instalar uno compatible

Fundi

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
19 Mar 2007
11.803
596
0
Hola Gente, como ya anda esto un poco mas avanzado y muchos ya estamos metiendo mano y viendo que en el foro oficial ya estan instalado y modificando cosas, que os parece si reunimos información y nos ponemos mano a la obra para ver si compilamos algo que este bien.

Link donde se esta hablando

Código:
root@azbox:/# insmod em8634dvb
SMP8634 DVB module starting ...
SMP8634 DVB module, pls set options parameters!
insmod: can't insert 'em8634dvb': Operation not permitted
root@azbox:/# insmod em8634dvb options="-analog -f PAL_BG -digital -f HDMI_720p5
0 -hdmi_chip SiI9030 0 14 15 100 0"
SMP8634 DVB module starting ...
Found pllad at 0
pGBUS 1
-analog -f PAL_BG -digital -f HDMI_720p50 -hdmi_chip SiI9030 0 14 15 100 0
Setting up HDMI chip
<sniipped>
DVB: video0 decoder data size is 23883776
DVB: video0 PictureProtectedMemorySize is 0
DVB: video0 BitstreamProtectedMemorySize is 0
DVB: video0 UnprotectedMemorySize is 28154684
DVB: video0 video uncached addr: 0x24FE690C, size 0x01AD9B3C, end: 0x26AC0448
root@azbox:/#
root@azbox:/# lsmod
Module                  Size  Used by    Not tainted
em8634dvb             528496  0
irvfd                  15568  1 em8634dvb
em8xxx               2453472  1 em8634dvb
stv6110x                5728  1 em8634dvb
stv090x                64496  1 em8634dvb
llad                  112032  2 em8634dvb,em8xxx
cx24116                49280  1 em8634dvb
e2_proc                11600  0
Seria bueno insertar los drivers del USB TDT para ver si avanzamos, mirar el lector de tarjetas, adpatar la codificación del Wifi para obtener otros formatos de Seguridad, y el Streaming de video
 

darkmantk

OpenSpa Team
Miembro del equipo
26 Ago 2009
8.533
2.648
0
Estaria muy bien Fundi poder sacar algo así como lo que comentas.

En lo que humildemente pueda ayudar hacedmelo saber.
 

Fundi

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
19 Mar 2007
11.803
596
0
Como se hace en una Dream y ahora con lo liberado solo seria adaptarlo para los Az

Básicamente se utilizan dos herramientas; OpenEmbedded que es un framework para hacer imagenes linux embebidas y bitbake que es un make C especialmente potente y que permite hacer cross-compiling, es decir, utilizar gcc para compilar a un codigo ensamblador diferente al de la maquina donde se ejecuta.

El proceso es muy parecido al que se describe en la wiki de OpenEmbedded pero adaptado al proyecto de dreambox en el repositorio OpenEmbedded.

Primer paso - Instalarse todos los paquetes necesarios que utiliza OpenEmbedded

Paquetes obligatorios:
Código:
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


Paquetes sumplementarios

Código:
apt-get install libxml2-utils xmlto python-psyco


y

Código:
apt-get install docbook


Segundo paso - Crearse la estructura de directorios local

Suponiendo que utilizados /stuff como directorios

Código:
  mkdir -p /stuff/build/conf


y entrar

Código:
cd /stuff/


Tercer paso - Bajarse la herramienta bitbake

Se recomienda no utilizar la versión que esta en los repositorios ubuntu y no instalarla en el filesystem de ubuntu. La alternativa es bajarsela a pelo y descomprimirsela en nuestro directorio de trabajo.

La bajamos:
Código:
  wget [URL="http://download.berlios.de/bitbake/bitbake-1.8.18.tar.gz"]http://download.berlios.de/bitbake/b...-1.8.18.tar.gz[/URL]


y la descomprimimos

Código:
tar -xvf bitbake-1.8.18.tar.gz


Tras ello tendremos en /stuff/bitbake-1.8.18/bin el ejecutable bitbake


Cuarto paso - Bajarse el repositorio opendreambox

Utilizando el software de control de version git:

Código:
cd /stuff
git clone git://git.opendreambox.org/git/openembedded


a esperar un rato, tras el cual tendremos bajo /stuff/openembedded todo el codigo fuente y librerias necesarias para realizar nuestras propias compilaciones.

La wiki openembedded actualizar el repositorio a menudo

Código:
 cd /stuff/openembedded
git pull
cd /stuff



Quinto paso - Crearse la configuracion de nuestro hardware destino

En mi caso es una dm8000

Utilizando una copia de la configuracion por defecto que nos acabamos de bajar

Código:
 cd /stuff/
cp openembedded/conf/local.conf.sample build/conf/local.conf


editamos es fichero local.conf para que

Código:
BBFILES := "/stuff/openembedded/recipes/*/*.bb"
MACHINE = "dm8000"
TARGET_ARCH = "mipsel"
TARGET_OS = "linux"
DISTRO = "opendreambox"

y borramos la linea final:
Código:
REMOVE_THIS_LINE:="${@bb.fatal('Read the comments in your conf/local.conf')}"

Sexto paso - Preparar el entorno para compilar

Básicamentedefinir dos variables de entorno:


Código:
export BBPATH=/stuff/build:/stuff/openembedded
export PATH=/stuff/bitbake/bin:$PATH


Sexto paso - Compilar la distribución

Si todo fue bien, es la hora de la verdad. Toca compilar

Código:
cd /stuff
bitbake nano


Si todo va bien, toca esperar un buen rato, +/- una hora tras lo cual tendremos en el directorio /stuff/tmp la distribucion compilada

Septimo paso - Llego la hora del Helloworld

El repositorio opendreambox ya contiene un Helloworld que se encuentra en /stuff/openembedded/recipes/helloworld. Basicamente es el fichero que utiliza bitbake para crear los instalables ipk.

En cualquier caso en la documentación openembedded explica como crear desde cero un Helloworld que es un poco mas modular que el anterior, por eso que tiene el codigo C y los parámetros de compilación y empaquetado separados. El ejemplo esta disponible aqui


Conclusiones
Si todo va bien tenemos en marcha un entorno para compilar nuestros propios programas C para utilizar en la dreambox. Es valido para cualquier dreambox; las unicas diferencias están en la configuración de la maquina, es decir el fichero local.conf.

ESto lo he probado en ubuntu. En otras distribuciones el primer paso sera diferente, pero todo lo demas es perfectamente valido.

Fuente lgarrido