Re: [Kernel] Decir 'y' o decir 'm'

2001-12-16 Por tema Alfonso García Rodríguez
Ignacio García Fernández escribe:
  A  cuento de esto yo siempre he tenido una duda. Cuando compilo el núcleo
  con el módulo para mi tarjeta de sonido y lo carga al arrancar ¿En realidad
  sólo se carga cuando hace falta? O si lo carga al arrancar se queda ahí
  aunque no se utilice?

 lsmod

 Si el módulo de tu tarjeta aparece marcado con (autoclean), se
 borrará cuando no sea necesario con la orden

 /sbin/rmmod -a

 que borra todos los módulos no utilizados y marcados con (autoclean),
 puedes utilizar cron para automatizar el proceso.

  Yo siempre había puesto todo el soporte de periféricos como módulos, pero
  ahora que ya tengo bien detectado todo, he compilado un núcleo monolítico.
  Si me decís que un módulo sólo se carga cuando se usa, igual me interesa
  volver a la configuarción con módulos.

 En mi humilde opinión siempre que se pueda compilar algo como módulos
 y no se refiera a algo que se usa de forma ininterrumpida, SI.

-- 
[EMAIL PROTECTED]
[EMAIL PROTECTED]



Re: [Kernel] Decir 'y' o decir 'm'

2001-12-15 Por tema Alfonso García Rodríguez
Gunnar Wolf escribe:

  - Seguridad: Hay varios exploits que basan su funcionamiento en
  incrustarse como módulo en el kernel, y pueden ser virtualmente
  indetectables. Si tu kernel no sabe cargar módulos, lo puedes compilar
  como un binario grandote, y te olvidas de este tipo de exploits.

 Cuando un núcleo necesita cierto módulo, lo busca en
 ciertos sitios prefijados y si lo encuentra lo carga.

 ¿ Como puede cargarse un módulo corrupto en mi sistema ? 

  - Estabilidad: Los módulos son archivos independientes en el sistema de
  archivos. Es muy poco probable que se corrompan o dañen, pero siempre hay
  más probabilidad si son varios archivos y no uno sólo, un kernel

 En ese caso todos los programas modulares corren ese riesgo, la
 verdad es que es muy poco probable que esto ocurra. En cuanto a
 estabilidad prefiero mil veces a Qmail que Sendmail, por ejemplo, el
 primero se divide en varios subprogramas encargados de realizar tareas
 muy específicas, el segundo es mas mazacote, pero mas estable según
 tu razonamiento. La filosofía de Unix desde un principio fue la de:
 divide y vencerás, tenemos un montón de programas sencillos
 encargados de realizar tareas muy específicas, ¿ Es Unix inestable
 por este motivo ?. 

 A lo mejor Unix está perdiendo esta filosofía, pero otros sistemas
 operativos aun la siguen

 

  grandotote. Un kernel lo cargas una vez, y punto. Y hace sus chequeos - Si
  está corrupto, no va a cargar y punto. No hay funcionamiento errático. En
  cambio, los módulos los cargas y los sueltas muchas veces de manera
  automática durante la operación del sistema.

 Prefiero correr el riesgo de cargar en memoria la mínima expresión
 del núcleo y utilizar más en el momento que lo necesite, de lo
 contrario estoy derrochando inútilmente memoria.

  - Rendimiento (aunque marginal): Cargar módulos toma tiempo. Si ya los
  tienes en el kernel, es más rápido usar su funcionalidad. Y hay veces que
  esto es indispensable.

 ¿ Cuando ?

-- 
[EMAIL PROTECTED]
[EMAIL PROTECTED]



Re: [Kernel] Decir 'y' o decir 'm'

2001-12-14 Por tema Ignacio García Fernández
On Thu, Dec 13, 2001 at 11:01:09PM +0100, =?ISO-8859-1?Q?Alfonso Garc=EDa 
Rodr=EDguez?= wrote:
 
  Impresoras (puerto paralelo, me entiendes, etc...), disquetera,
  soporte ppp, tarjeta de sonido, en definitiva todo lo que no uses
  ininterrumpidamente, SIN DUDAR compilalo como módulo.

A  cuento de esto yo siempre he tenido una duda. Cuando compilo el núcleo
con el módulo para mi tarjeta de sonido y lo carga al arrancar ¿En realidad
sólo se carga cuando hace falta? O si lo carga al arrancar se queda ahí
aunque no se utilice?

Yo siempre había puesto todo el soporte de periféricos como módulos, pero
ahora que ya tengo bien detectado todo, he compilado un núcleo monolítico.
Si me decís que un módulo sólo se carga cuando se usa, igual me interesa
volver a la configuarción con módulos.

Un saludo y gracias

Ignacio

 
 -- 
 [EMAIL PROTECTED]
 [EMAIL PROTECTED]
 
 
 --
 To UNSUBSCRIBE, email to [EMAIL PROTECTED]
 with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
 

-- 
-
Ignacio García Fernández 
[EMAIL PROTECTED]
Instituto de Robótica.   
Universidad de Valencia.
Tlf. 96 398 3583



Re: [Kernel] Decir 'y' o decir 'm'

2001-12-14 Por tema Bernardo Arlandis Mañó

Ignacio García Fernández wrote:


On Thu, Dec 13, 2001 at 11:01:09PM +0100, =?ISO-8859-1?Q?Alfonso Garc=EDa 
Rodr=EDguez?= wrote:


Impresoras (puerto paralelo, me entiendes, etc...), disquetera,
soporte ppp, tarjeta de sonido, en definitiva todo lo que no uses
ininterrumpidamente, SIN DUDAR compilalo como módulo.



A  cuento de esto yo siempre he tenido una duda. Cuando compilo el núcleo
con el módulo para mi tarjeta de sonido y lo carga al arrancar ¿En realidad
sólo se carga cuando hace falta? O si lo carga al arrancar se queda ahí
aunque no se utilice?



Se queda. Si quieres que se cargue solo cuando haga falta lo has de 
poner en /etc/modutils, en algún fichero de este directorio. Después 
ejecutas update-modules y te lee todas las definiciones de módulos 
cargables. En alguna de las páginas de man hay más información, man 
modules.conf o man update-modules.




Yo siempre había puesto todo el soporte de periféricos como módulos, pero
ahora que ya tengo bien detectado todo, he compilado un núcleo monolítico.
Si me decís que un módulo sólo se carga cuando se usa, igual me interesa
volver a la configuarción con módulos.

Un saludo y gracias

Ignacio



--
[EMAIL PROTECTED]
[EMAIL PROTECTED]


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]










Re: [Kernel] Decir 'y' o decir 'm'

2001-12-14 Por tema Javier Fafián Alvarez
 Yo siempre había puesto todo el soporte de periféricos como módulos, pero
 ahora que ya tengo bien detectado todo, he compilado un núcleo monolítico.
 Si me decís que un módulo sólo se carga cuando se usa, igual me interesa
 volver a la configuarción con módulos.
Hombre, yo tengo por costumbre compilar ciertas cosas como módulo,
ejemplo soporte para fat (para los diskettes), pero mira un lsmod:
vfat9276   0  (autoclean)
fat29080   0  (autoclean) [vfat]
plex86158624   0  (unused)
nls_iso8859-1   2848   0  (autoclean)
iptable_filter  1728   0  (autoclean) (unused)

El nls_iso8859-1 es posible que lo necesite, aunque preferiria el
nls_iso8859-15, el iptable_filter creo que no está en uso, pues no tengo
ninguna regla, el plex86 lo mismo y otro tanto para el fat y el vfat ...
veamos :
# modprobe -r vfat fat plex86  iptable_filter nls_iso8859-1
# lsmod
Module  Size  Used byTainted: PF

Ya  no tengo módulos en memoria :-/


-- 
Saludos | ¿ no tienes enemigos? ¿Es que jamás dijiste la verdad 
Javier Fafián Alvarez   | o jamás amaste la justicia?  
|   Santiago Ramón y Cajal.
 



Re: [Kernel] Decir 'y' o decir 'm'

2001-12-14 Por tema Javi Castelo
Ignacio García Fernández wrote:


 Yo siempre había puesto todo el soporte de periféricos como módulos, pero
 ahora que ya tengo bien detectado todo, he compilado un núcleo monolítico.
 Si me decís que un módulo sólo se carga cuando se usa, igual me interesa
 volver a la configuarción con módulos.


Ese es uno de los motivos por los que puse el mensaje  [Kernel] Decir 'y' o 
decir 'm' , parece
ser que hay un demonio (o varios) que se encargan de cargar el módulo en el 
momento que lo
necesitas ¿Puede ser kerneld?

El otro motivo del mensaje es que cuando compilas en el kernel como diablos 
configuras, por
ejemplo, una AWE-32 que no es Plug  Play, metiendo en el lilo append= 
, ya probé y no
funcionó. Es más acabo de bajarme las fuentes y la documentación del kernel 
2.2.19 y dice bien
clarito que para hacer funcionar la AWE-32 tienes que marcar las 
correspondientes opciones con
'm' (como módulos). Y luego resulta que cuando estas seleccionando las 
distintas opciones en la
ayuda del kernel te dicen que pongas 'y'. A ver si se ponen de acuerdo los que 
escriben la ayuda
del kernel y los que escriben la documentación del kernel. :-?

En fin, gracias a todos por vuestras sugerencias.

Un saludo.



Re: [Kernel] Decir 'y' o decir 'm'

2001-12-14 Por tema Bernardo Arlandis Mañó

Javi Castelo wrote:


Ignacio García Fernández wrote:



Yo siempre había puesto todo el soporte de periféricos como módulos, pero
ahora que ya tengo bien detectado todo, he compilado un núcleo monolítico.
Si me decís que un módulo sólo se carga cuando se usa, igual me interesa
volver a la configuarción con módulos.




Ese es uno de los motivos por los que puse el mensaje  [Kernel] Decir 'y' o decir 
'm' , parece
ser que hay un demonio (o varios) que se encargan de cargar el módulo en el 
momento que lo
necesitas ¿Puede ser kerneld?



Kerneld se usaba antes, ahora se usa un proceso interno del kernel que 
no recuerdo como se llama, k...??




El otro motivo del mensaje es que cuando compilas en el kernel como diablos 
configuras, por
ejemplo, una AWE-32 que no es Plug  Play, metiendo en el lilo append= 
, ya probé y no
funcionó. Es más acabo de bajarme las fuentes y la documentación del kernel 
2.2.19 y dice bien
clarito que para hacer funcionar la AWE-32 tienes que marcar las 
correspondientes opciones con
'm' (como módulos). Y luego resulta que cuando estas seleccionando las 
distintas opciones en la
ayuda del kernel te dicen que pongas 'y'. A ver si se ponen de acuerdo los que 
escriben la ayuda
del kernel y los que escriben la documentación del kernel. :-?


En eso la culpa la tenemos todos, la documentación está ahí para que 
cualquiera pueda ayudar a mejorarla. Quiero decir que los del kernel, 
al fin y al cabo, somos todos los que lo usamos.





En fin, gracias a todos por vuestras sugerencias.

Un saludo.









Re: [Kernel] Decir 'y' o decir 'm'

2001-12-14 Por tema Hue-Bond
Javi Castelo, [EMAIL PROTECTED]:34:16(+0100):

¿ Porqué en la ayuda de la configuración del kernel recomiendan que
contestes 'y' en vez de 'm' a todo lo que quieras darle servicio o
utilizar?

 En la ayuda, cuando dicen que le des a Y lo que quieren decir
 es que lo compiles, da igual cómo. El  caso es que no le dés a N.
 Que le des a Y o a M ya es otra historia.

 Normalmente cuando algo se puede compilar como módulo te dan el
 nombre del archivo.o resultante y te dicen que te leas el archivito
 de turno (modules.txt).


Esto no tiene mucho sentido salvo que suprimieramos la entrada
map=/boot/map anterior a las de los kernel y dentro de cada sección
image=/boot/kernel-XX.XX.XX pongamos map=/boot/System.map-XX.XX.XX
para cada kernel.

 Supongo... nunca se me ocurrió. Pruébalo y nos cuentas :^).


-- 
 David Serrano [EMAIL PROTECTED] - Linux Registered User #87069



Re: [Kernel] Decir 'y' o decir 'm'

2001-12-14 Por tema Javi Castelo
Bernardo Arlandis Mañó wrote:


  El otro motivo del mensaje es que cuando compilas en el kernel como diablos 
  configuras, por
  ejemplo, una AWE-32 que no es Plug  Play, metiendo en el lilo append= 
  , ya probé y no
  funcionó. Es más acabo de bajarme las fuentes y la documentación del kernel 
  2.2.19 y dice bien
  clarito que para hacer funcionar la AWE-32 tienes que marcar las 
  correspondientes opciones con
  'm' (como módulos). Y luego resulta que cuando estas seleccionando las 
  distintas opciones en la
  ayuda del kernel te dicen que pongas 'y'. A ver si se ponen de acuerdo los 
  que escriben la ayuda
  del kernel y los que escriben la documentación del kernel. :-?

 En eso la culpa la tenemos todos, la documentación está ahí para que
 cualquiera pueda ayudar a mejorarla. Quiero decir que los del kernel,
 al fin y al cabo, somos todos los que lo usamos.

Pues por mi que no quede,
¿ Donde tengo que escribir para que los del kernel unifiquen los criterios de 
la documentación?
Hay tantas direcciones que no sé cual sería la idonea.

Un saludo y gracias por tu contestación.



[Kernel] Decir 'y' o decir 'm'

2001-12-13 Por tema Javi Castelo
Hola,

... he ahí mi dilema.

Hasta ahora sólo he compilado el kernel (versión 2.4.16) una vez y
bajo el entorno X. Sin embargo sigo arrancando con el 2.2.18pre21.
Tengo bastantes dudas que al leer libros y documentación diversa se
duplican, a saber:

1.- Cuando navegaba por las distintas opciones que me interesaban (por
ejemplo una SB AWE-32 ) le daba click al botón de ayuda antes de
marcar y me decía algo así como: contesta 'y' si tienes esa tarjeta
de sonido. El caso es que si contestas sí ('y') en vez de 'm' el
driver se compila en el kernel y evidentemente no puedes instalar y
configurar la tarjeta como módulo. La tarjeta de sonido no funcionó ni
añadiendo la correspondiente línea en el LILO (append= ...lo que
proceda) tal y como decía en la propia ayuda del kernel mencionada.

Pregunto: Si una de las ventajas del kernel es que puedes configurar
un sistema altamente modular, con módulos que se cargan segun lo
demanda el sistema y en definitiva el usuario...

¿ Porqué en la ayuda de la configuración del kernel recomiendan que
contestes 'y' en vez de 'm' a todo lo que quieras darle servicio o
utilizar?

Otro tanto podríamos decir del resto de opciones. Entonces ...

¿Qué me recomendais que compile en el kernel y qué como módulo?

Al hilo de esto he mirado lo que contiene el fichero
/boot/Config-2.2.18pre21 que casualmente resulta ser cómo se configuró
el kernel durante la instalación y la práctica totalidad de las
opciones están marcadas com 'm' y muy pocas con 'y'. ¡¡ Vale !!
durante la instalación Debian se cura en salud pues no sabe lo que
el usuario va a instalar en el sistema ¿O no? ... ¿O se hace así
porque es una buena metodología para configurar el kernel?
Evidentemente no contestaremos ni 'y' ni 'm' a lo que no
tengamos/queramos o vayamos a tener. Pero ... ¿Y al resto?

2.- La documentación que he leido a la hora de compilar el kernel dice
que es muy importante que junto a la imagen del nucleo compilado se
acompañe el fichero generado System.map-XX.XX.XX. Además se
recomienda  añadir a lilo.conf una entrada para el nuevo kernel (por
si algo va mal).

Sin embargo no se dice que antes de la correspondiente sección del
núcleo con el que arrancar ya hay una línea en lilo.conf que dice algo
así como map=/boot/map. Es decir, por mucho que creemos en lilo.conf
entrada al nuevo kernel y acompañemos junto a la imagen el nuevo
System.map, el nuevo kernel arrancará con el antiguo map :-?

Esto no tiene mucho sentido salvo que suprimieramos la entrada
map=/boot/map anterior a las de los kernel y dentro de cada sección
image=/boot/kernel-XX.XX.XX pongamos map=/boot/System.map-XX.XX.XX
para cada kernel.

¿Alguien ha probado hacer esto? o en su defecto
¿Cómo hacer que cada kernel inicie con su System.map?

Un saludo.





Re: [Kernel] Decir 'y' o decir 'm'

2001-12-13 Por tema Bernardo Arlandis Mañó

Javi Castelo wrote:


Hola,

... he ahí mi dilema.

Hasta ahora sólo he compilado el kernel (versión 2.4.16) una vez y
bajo el entorno X. Sin embargo sigo arrancando con el 2.2.18pre21.
Tengo bastantes dudas que al leer libros y documentación diversa se
duplican, a saber:

1.- Cuando navegaba por las distintas opciones que me interesaban (por
ejemplo una SB AWE-32 ) le daba click al botón de ayuda antes de
marcar y me decía algo así como: contesta 'y' si tienes esa tarjeta
de sonido. El caso es que si contestas sí ('y') en vez de 'm' el
driver se compila en el kernel y evidentemente no puedes instalar y
configurar la tarjeta como módulo. La tarjeta de sonido no funcionó ni
añadiendo la correspondiente línea en el LILO (append= ...lo que
proceda) tal y como decía en la propia ayuda del kernel mencionada.

Pregunto: Si una de las ventajas del kernel es que puedes configurar
un sistema altamente modular, con módulos que se cargan segun lo
demanda el sistema y en definitiva el usuario...

¿ Porqué en la ayuda de la configuración del kernel recomiendan que
contestes 'y' en vez de 'm' a todo lo que quieras darle servicio o
utilizar?



Hay alguna ventaja al compilarlo dentro del kernel, y es que irá un 
pelín  más rápido (aunque no sea nada apreciable), consume un poco menos 
memoria y los novatos no se tienen que preocupar de cargar el módulo.




Otro tanto podríamos decir del resto de opciones. Entonces ...

¿Qué me recomendais que compile en el kernel y qué como módulo?



Yo te recomendaría que compilases como módulo todo aquello que:
- uses poco o raras veces y ocupe una cantidad apreciable de memoria.
- pueda dar problemas de compatibilidad con otros módulos o programas en 
ciertos momentos.

- no estés seguro de si deberías usar.



Al hilo de esto he mirado lo que contiene el fichero
/boot/Config-2.2.18pre21 que casualmente resulta ser cómo se configuró
el kernel durante la instalación y la práctica totalidad de las
opciones están marcadas com 'm' y muy pocas con 'y'. ¡¡ Vale !!
durante la instalación Debian se cura en salud pues no sabe lo que
el usuario va a instalar en el sistema ¿O no? ... ¿O se hace así
porque es una buena metodología para configurar el kernel?
Evidentemente no contestaremos ni 'y' ni 'm' a lo que no
tengamos/queramos o vayamos a tener. Pero ... ¿Y al resto?



Se hace así porque se compila soporte para muchos dispositivos y 
funcionalidades. Es un kernel para todos en general y para nadie en 
concreto. De manera que después cada uno puede seleccionar lo que le 
hace falta y no tener que tragar con un kernel de 2Mb que tiene más 
cosas de las que hacen falta y que podría dar problemas al tener 
compilado funcionalidades que puede ser incompatibles entre sí o no 
funcionar demasiado bien en algunos casos.


Si te compilas un kernel a medida, está claro que no lo vas a hacer así.

2.- La documentación que he leido a la hora de compilar el kernel dice
que es muy importante que junto a la imagen del nucleo compilado se
acompañe el fichero generado System.map-XX.XX.XX. Además se
recomienda  añadir a lilo.conf una entrada para el nuevo kernel (por
si algo va mal).



Cierto.



Sin embargo no se dice que antes de la correspondiente sección del
núcleo con el que arrancar ya hay una línea en lilo.conf que dice algo
así como map=/boot/map. Es decir, por mucho que creemos en lilo.conf
entrada al nuevo kernel y acompañemos junto a la imagen el nuevo
System.map, el nuevo kernel arrancará con el antiguo map :-?

Esto no tiene mucho sentido salvo que suprimieramos la entrada
map=/boot/map anterior a las de los kernel y dentro de cada sección
image=/boot/kernel-XX.XX.XX pongamos map=/boot/System.map-XX.XX.XX
para cada kernel.



Que yo sepa no es así. No te lo sé razonar ahora mismo, pero no he 
tenido nunca problemas en ese sentido. En el image se suelen usar en laces:

/vmlinuz - boot/kernel-xx.xx.xx
/vmlinuz.old - boot/kernel-yy.yy.yy

Supongo que sabe adivinar qué map tiene que coger. No te sé decir seguro.


Una cosa que no has mencionado es que debes mantener el 
/lib/modules/xx.xx.xx con los módulos del kernel antiguo. No has de 
hacer nada, pero recuerda que no los debes borrar. Y que la versión de 
seguridad del kernel no sea la misma que la nueva que vas a probar, 
porque habrás machacado los modulos antiguos con los nuevos.




¿Alguien ha probado hacer esto? o en su defecto
¿Cómo hacer que cada kernel inicie con su System.map?

Un saludo.








Re: [Kernel] Decir 'y' o decir 'm'

2001-12-13 Por tema Alfonso García Rodríguez
Javi Castelo escribe:
  Hola,
  
  ... he ahí mi dilema.
  
  Hasta ahora sólo he compilado el kernel (versión 2.4.16) una vez y
  bajo el entorno X. Sin embargo sigo arrancando con el 2.2.18pre21.
  Tengo bastantes dudas que al leer libros y documentación diversa se
  duplican, a saber:
  
  1.- Cuando navegaba por las distintas opciones que me interesaban (por
  ejemplo una SB AWE-32 ) le daba click al botón de ayuda antes de
  marcar y me decía algo así como: contesta 'y' si tienes esa tarjeta
  de sonido. El caso es que si contestas sí ('y') en vez de 'm' el
  driver se compila en el kernel y evidentemente no puedes instalar y
  configurar la tarjeta como módulo. La tarjeta de sonido no funcionó ni
  añadiendo la correspondiente línea en el LILO (append= ...lo que
  proceda) tal y como decía en la propia ayuda del kernel mencionada.
  
  Pregunto: Si una de las ventajas del kernel es que puedes configurar
  un sistema altamente modular, con módulos que se cargan segun lo
  demanda el sistema y en definitiva el usuario...
  
  ¿ Porqué en la ayuda de la configuración del kernel recomiendan que
  contestes 'y' en vez de 'm' a todo lo que quieras darle servicio o
  utilizar?
  
  Otro tanto podríamos decir del resto de opciones. Entonces ...
  
  ¿Qué me recomendais que compile en el kernel y qué como módulo?

 Impresoras (puerto paralelo, me entiendes, etc...), disquetera,
 soporte ppp, tarjeta de sonido, en definitiva todo lo que no uses
 ininterrumpidamente, SIN DUDAR compilalo como módulo.

-- 
[EMAIL PROTECTED]
[EMAIL PROTECTED]



Re: [Kernel] Decir 'y' o decir 'm'

2001-12-13 Por tema Gunnar Wolf
   Otro tanto podríamos decir del resto de opciones. Entonces ...
  
   ¿Qué me recomendais que compile en el kernel y qué como módulo?

  Impresoras (puerto paralelo, me entiendes, etc...), disquetera,
  soporte ppp, tarjeta de sonido, en definitiva todo lo que no uses
  ininterrumpidamente, SIN DUDAR compilalo como módulo.

Ahora... Va una recomendación que me han hecho, por más que yo no sigo ;-)

En servidores y demás máquinas en que la seguridad, la estabilidad y el
rendimiento son primordiales, compila tu kernel SIN SOPORTE A MÓDULOS.
¿Por qué?

- Seguridad: Hay varios exploits que basan su funcionamiento en
incrustarse como módulo en el kernel, y pueden ser virtualmente
indetectables. Si tu kernel no sabe cargar módulos, lo puedes compilar
como un binario grandote, y te olvidas de este tipo de exploits.

- Estabilidad: Los módulos son archivos independientes en el sistema de
archivos. Es muy poco probable que se corrompan o dañen, pero siempre hay
más probabilidad si son varios archivos y no uno sólo, un kernel
grandotote. Un kernel lo cargas una vez, y punto. Y hace sus chequeos - Si
está corrupto, no va a cargar y punto. No hay funcionamiento errático. En
cambio, los módulos los cargas y los sueltas muchas veces de manera
automática durante la operación del sistema.

- Rendimiento (aunque marginal): Cargar módulos toma tiempo. Si ya los
tienes en el kernel, es más rápido usar su funcionalidad. Y hay veces que
esto es indispensable.

Saludos,

--
Gunnar Wolf - [EMAIL PROTECTED] - (+52-55)5623-1118