Blogia
abondu

A vueltas con el LTT

Ante todo, gracias a los amigos de opersys por la nulidad de su documentación. Eso es documentación ofuscada y lo demás son bromas..

Uso la versión LTT 0.9.5, la última estable, aunque lleva casi 2 años sin tocarse creo que es la adecuada.
Sin embargo la 0.9.6 está en Beta y casi lista para salir a la calle pero tiene unos ligeros problemas con las versiones de kernel que utiliza la versión 2.6.9 del kernel, aunque esta no está soportada por el RTAI supongo que si lo esté por adeos, con lo cual que una vez que funcione esto más o menos podría intentar cambiar el RTAI por el ADEOS, aunque bueno, los experimentos mejor con gaseosa.

A lo que vamos, tengo que instalar la versión 0.9.5 del LTT:
El LTT pide el kernel 2.4.16 y el RTAI 24.1.8

Lo primero que hago es bajar un kernel nuevo de rediris, por ejemplo:

como root...

cd /usr/src
wget ftp://ftp.rediris.es/mirror/kernel/linux/kernel/v2.4/linux-2.4.16.tar.gz
tar xvzf linux-2.4.16.tar.gz

Ahora tengo ya el vanilla kernel, que es el kernel sin ningún parche.

Tras esto entro en el directorio en el que se ha descomprimido el código fuente del kernel.

Tengo que aplicar el primer parche del LTT:

me bajo el LTT y lo descomprimo:

wget http://www.opersys.com/ftp/pub/LTT/TraceToolkit-0.9.5a.tgz
tar xvzf TraceToolkit-0.9.5a.tgz

en el directorio Patches del LTT tengo el primer parche, que es el que le tengo que aplicar al vanilla kernel :

desde /usr/src/linux
patch -p1 < $TraceToolkit/patch-ltt-linux-2.4.16-vanilla

Una vez hecho esto, configuro el kernel:

make config

o
xconfig

o

make menuconfig

Configuro las opciones que necesito e instalo como módulo o en general el kernel trace.

(Están en lo de ayer)

compilo el kernel

make dep

make modules

make modules_install

make bzImage

edito el lilo.conf para arrancar con el kernel parcheado

ver www.tldp.org kernel-howto, para el que no sepa

Aplico el parche con RTAI del LTT al kernel

(como el anterior) me da errores y me dice que ya está aplicado otro parche... uhmmm, kaka.

Parcheo el RTAI

Parche el kernel con el parche para rtai
Configuro el kernel e instalo el RTAI, sin compilar el kernel.

No aplico el parche del RTAI al nucleo.

da un error en rtai-arch.c, dice que la macro RTAI_TRACE_GLOBAL_IRQ_ENTRY usa dos argumentos, demasiados....

miro el fuente de la macro en ../include/rtai_trace.h

y dice :

#define TRACE_RTAI_GLOBAL_IRQ_ENTRY(ID) **********sustituyo por (ID, __dummy)
00090 do
00091 {
00092 uint32_t eflags, xcs;
00093 trace_rtai_global_irq_entry irq_entry;
00094 irq_entry.irq_id = ID;
00095 __asm__ __volatile__("pushfl; pop %0": "=g" (eflags));
00096 __asm__ __volatile__("pushl %%cs; pop %0": "=g" (xcs));
00097 irq_entry.kernel = !((VM_MASK & eflags) (3 & xcs));
00098 rt_trace_event(TRACE_RTAI_EV_GLOBAL_IRQ_ENTRY, &irq_entry);
00099 } while(0)

y al parecer funciona pero me da más problemas, la solción obtenida de:

http://www.rtai.org/documentation/kilauea/html/rtai__trace_8h-source.html
que es el código fuente que aparece en la ayuda...

antes de aplicar el parche no estaba tampoco el __dummy del demonio

BUeno, creo que por hoy va bien.....

Objetivos cumplidos.... ninguno, sólo entender como se instala el LTT, objetivos para mañana, desliar todo el li de st_pgdir que me marca al compilar.

Posiblemente el problema sea que al haber parcheado no esté muy bien hecho y haya varias definiciones de la misma función, h de suponer que la buena será la del parche del ltt o no....

Esto forma parte del marvelous shm (memoria compartida, shared memory) Otra opción de arreglo será instalarlo directamente sin la necesidad de que sea un módulo.....

1 comentario

Chigusa -

¿Has mirado a ver si es por la junta de la trócola?