abondu

Licencia de Creative Commons

Temas



publicidad

¿Y estos anuncios?

Enlaces

Archivos

 

Se muestran los artículos pertenecientes al tema Proyecto.

Más luss

He finalizado con relativo éxito la primera prueba con el lxrt:

Creé dos programas gemelos que se dedicaba a escribir en un fichero tiempos.dat el número de ciclos transcurridos desde el arranque del SO.

Uno de los programas corría sobre el núcleo Linux y el otro sobre el LXRT.

Como era de esperar el que corría sobre LXRT funcionaba mucho más rápido que el que corría sobre linux.

Aunque la diferencia de velocidad es más del doble, es de esperar que al portar ese mismo programa como módulo del rtai, esta(la diferencia) aumente considerablemente. Esto se debe a que el LXRT es sólo una api que corre encima del kernel y que no tiene control absoluto sobre él. Se trata de tiempo real flexible (soft Real Time) mientras que el RTAI es tiempo real duro o estricto (Hard real time). De todas formas, se pueden hacer algunas llamadas desde el LXRT a funciones que se ejecuten en tiempo real estricto, pero eso lo dejaremos para otro capítulo.

Notas a tener en cuenta:

Para iniciar un programa que corra bajo LXRT es necesario cargar antes los módulos rtai, rtai_sched y rtai_lxrt, por lo tanto será acosejable un script que los cargue antes de ejecutar el programa en si (Propia experiencia)

Las opciones de compilación de un programa que cargue las librerías de rtai son las comunes, pero hay que añadir una línea "-I/usr/src/rtai/include" para incluir las librerías del rtai que usemos. Generalmente estarán en ese directorio.
26/04/2005 10:38 enlace permanente #. Tema: Proyecto No hay comentarios. Comentar.

La luz al final del túnel

Ya voy viendo la luz al final del tunel, bueno, al menos eso es lo que parece.

He conseguido instalar los módulos del lxrt y todas esas cosas, y al parecer funcionan.

El método, no hacerle ni puñetero caso a los manuales de instalación que vienen con el código fuente y si al mítico how-to de recompilar el kernel de linux:

Ordenes
En el kernel
Una vez parcheado el kernel
make menuconfig
make modules
make modules_install (casca)
make bzImage

modificar lilo

en el rtai

make dep && make
make modules
make install

Al final los módulos que tenemos que instalar, son
rtai
rtai_sched
rtai_lxrt /* no lxrt a secas, no lo encuentra y si lo encuentra no funciona ni patrás*/

En las funciones que usen el lxrt tendremos que llamar también a la librería porque si sólo ponemos da muchos errores del tipo unfefined y first time use variable y cosas por el estilo....

La cosa avanza, lenta, pero avanza....
25/04/2005 18:21 enlace permanente #. Tema: Proyecto No hay comentarios. Comentar.

Odio el lxrt

Pues al parecer, ñoras y ñores, mi queridísimo ordenador del aula de informática ha decidido no tragarse el lxrt de primeras, y de segundas darme unos errores de dependencias que levantarían dolor de cabeza al más intrépido, con lo cual, yo que soy muy listo paso de ello.... al menos hasta mañana, si se tuercen las cosas, o el lunes si no...

La cuestión:

No encuentro el modulo lxrt por ningún lado, y eso que que he compilado todos los módulos del rtai, ¿será hora de pasar a una versión superior? ¿Qué llevan los curas bajo la sotana? Grandes preguntas de ayer, hoy y siempre....

Aparte de todo eso, cuando compilo me hace gracia, porque me marca unos undefineds en el código de los .h que te giñas por la patilla pa bajo...
22/04/2005 18:18 enlace permanente #. Tema: Proyecto No hay comentarios. Comentar.

Objetivos

El objetivo ahora es jugar con el RTAI:

Crearé varios programas que adaptaré al rtai para comprobar la diferencia de funcionamiento trabajando con el kernel normal y con el rtai
21/04/2005 18:29 enlace permanente #. Tema: Proyecto No hay comentarios. Comentar.

Ya sé programar

Bueno, es broma, lo único que sé,e s que tras una semana de pegarme con los syscalls he conseguido saber el tiempo que lleva encendido el ordenador, ya sé que parecerá una perogrullada, pero..... es lo que hay y mi tiempo me ha costado....

Primero encontrar la llamada a sistema correcta, patadas contra esta web he tenido que dar todos los dias.

Finalmente he conseguido hacer funcionar esta llamada times(struct tms *buf);

la llamada en cuestión me devuelve el número de ticks(ciclos??) que han pasado desde el encendido del ordenador.

Tengo que crear una struct tms ciclos; le paso a la función la dirección de ciclos (&ciclos) y me devuelve un clock_t con los ciclos. Eso que me devuelve lo puedo interpretar como int o como long sin ningún problema.
21/04/2005 18:28 enlace permanente #. Tema: Proyecto No hay comentarios. Comentar.

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.....
12/04/2005 13:18 enlace permanente #. Tema: Proyecto Hay 1 comentario.

Instalación del LTT

Tras mucho pelear con el jodido kernel 2.4.16 he decidido instalarlo a pelo e ir añadiéndole opciones poco a poco salvando los cambios y comprobando que compilaba ferpectamente....

El resultado final, un kernel 2.4.16 sin USB, Scsi, con discos de RAM pero no capacidad para instalar memorias flash y de ese tio (MTD se llaman, me parece..) Instalado, y sólo instalado, urge un arranque mañanaero para comprobar si funciona y si soy capaz a poder ver internet con él y si chuta el sonido...Uno necesita divertimento, vaya.

El propósito del nuevo kernel es utilizar el LTT (Linux Trace Toolkit)(Lo pide por imperativo legal, la versión 0.9.5, última estable es el último kernel que se traga), esto es, una utilidad que funciona en tiempo real y que me da todos los procesos, el /proc, los /dev y todo lo imaginable para poder comprobar así el funcionamiento de mis programas...Ralentiza un tanto el uso de mis módulos, pero es una excelente herramienta, eso espero, a la hora de comenzar a programar y depurar.

Objetivo para mañana:

Instalar el tiempo real en el nuevo kernel y comprobar que funciona ejecutando un par de ejemplos de el libro gordo de Petete, RTAI Progamming guide. Una vez hecho esto, enchufar el LTT y comprobar que funciona. Con esto se da por medianamente completado el dia.

Mejora.....

Ejecutar ejemplos de RPG(RTAI Programing Guide) y ver como se "mueve" el sistema bajo presión (las X afectan mucho a los tiempos de funcionamiento que nos dá el LTT, ya se sabe, carga del sistema)

Más mejora, imposible, no creo que pueda hacer nada más en un dia.....
11/04/2005 18:28 enlace permanente #. Tema: Proyecto No hay comentarios. Comentar.

La asamblea de Majaras ha decidido......

Mañana proyecto....

Aviso a navegantes....

Aprovechando la oportunidad que me proporciona mi proveedor de espacio Blogia he decidido usar parte de este para llevar el libro de guardia de las cochinaditas que hago en el poryecto, que uno es muy desmemoriado y conviene tenerlo todo bien apuntadito.

Así que si alguien comienza a ver apuntes extraños y gccs por la web que no se asuste, no me estoy volviendo más loco de lo normal.
11/04/2005 18:19 enlace permanente #. Tema: Proyecto No hay comentarios. Comentar.


Plantilla basada en http://blogtemplates.noipo.org/

Blog creado con Blogia. Derechos de autor con . Estadísticas. Suscribir RSS. Admin.
Blogia apoya: Fundación Josep Carreras, y Evento Blog España. Vota en los Premios Bitacoras.com [Blog Oficial en LaInformacion.com]