Febrero - 98

 

Placas K6
PREG

 Tengo problemas instalando LINUX en un ordenador como el que sigue :
 

He probado tanto Red Hat como Caldera y siempre termino de la misma forma. El ordenador se reinicia (como si cortaras y repusieras la alimentación) con lo que nunca puedo finalizar la instalación.
¿ Habéis oido hablar de problemas con esta tarjeta madre o con el K6?
¿ Dónde podría acudir?

RESP

Parece que eso se soluciona actualizando la BIOS.


Proceso Pid 0

PREG

 No me queda muy claro la razón de que el proceso cero quede corriemdo en baja prioridad y si se duerme genere un panic (por un reporte de error), porque si corre tiene que haber una razón 'util y no inutil?  Aún si uno no tiene APM porque esto no solo ocurre con el Linux sino con el Solaris, BSD, etc..
Cual es la función del proceso cero realmente?
Y no creo que sea el gestionar la memoria swap como he leido en algunas publicaciones sobre el tema

RESP

Cuando un programa se empieza a ejecutar, la carga del programa se realiza bajo demanda, es decir, no se carga el ejecutable completo, sino que se cargan unas cuantas páginas de RAM, pocas, y se empieza a ejecutar. Cuando el proceso intenta ejecutar en una posición de código que no esta disponible en memoria principal, se genera una excepción de fallo de página, que el sistema operativo intercepta y soluciona.
La soluciona yendose al ejecutable, cargando la página correspondiente y reiniciando la ejecución en el punto en el que se produjo la excepción, que ahora ya no se producira ya que la nueva página si que esta en memoria.
Esto hace que la memoria se gestione de una forma muy eficiente, ya que cada programa solo ocupa en memoria lo mínimo imprescindible.

En el caso de que no haya memoria principal disponible, el sistema operativo debe además elegir una página de otro proceso para pasar al swap, escribirla en disco, marcarla como libre y cargar la parte de programa que falta. Esto puede ser muy ineficiente, y a este fenomeno se le llama "thrashing".

Para minimizar este efecto en lo posible, hay una tarea (el pid 0, entre otras cosas hace esto) que se va encargando de mantener permanentemente unas cuantas páginas libres listas para su asignación directa, de forma que no haya que hacer swap al ejecutar un nuevo proceso, sino que ya se haya hecho (al menos en parte) anteriormente. En Linux, esta tarea se llama "kswapd" y puedes ver que emite un mensaje en el arranque:

(...)
Checking 'hlt' instruction... Ok.
Intel Pentium with F0 0F bug - workaround enabled.
moving IDT ... ... done
Linux version 2.0.32 (root@tatooine) (gcc version 2.7.2.1) #1 Sat Nov 22
12:25:05 MET 1997
Starting kswapd v 1.4.2.2       ( Esta es la linea!!)
APM BIOS version 1.2 Flags 0x07 (Driver version 1.2)
(...)
 


Problemas de IRQ

PREG

Tengo un problema quizas con las IRQ's.
El modem trabaja en conjunto con una tarjeta de sonido. Es la Mwave de IBM. No estoy usando isapnptools.
Haciendo un "setserial -a /dev/cua0" recibo este mensaje:
/dev/cua0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4, Baud_base:
115200, Close_delay: 50, Divisor: 0, Closing_wait: 3000,
Closing_wait2: infinite; Flags: spd_normal skip_test.
Tengo entendido que el Close_wait debe estar por omision en "none".
Me equivoco?
La placa es una intel, con bus ISA y controlador IDE.
Los dispositivos instalados son un lector de CD y un mouse en el COM2 /dev/cua1).
No veo conflicto alguno entre los puertos.
Durante el arranque el S.O. muestra lo siguiente:

tty00 at 0x03f8 (IRQ=3D4) is a 16550A
tty01 at 0x02f8 (IRQ=3D3) is a 16550A
tty00 at 0x03e8 (IRQ=3D4) is a 16550A.

RESP

 No. Esto te dice como esta configurado el driver, que es diferente de como pueda estar configurada la tarjeta.
La información de puertos de E/S suele ser correcta (seguro), pero la IRQ puede estar dando problemas.

PREG

 Ayer instale un programita para enviar mensajes al modem.
Se llama modem-stats. Pero no logré que el modem me "escuchara".
Me dice que no puede abrir el dispositivo (el /dev/cua0, que es en donde tengo instalado el modem en cuestión).

RESP

Lo tienes instalado en COM2? Lo de que no puedas abrirlo puede ser un problema de permisos (no tengas suficientes privilegios para abrir el puerto) o que tengas abierto cua0 (o ttyS0) para otra cosa.
Te pregunto que tienes instalado en COM2 porque puede venir de aqui el problema. Normalmente, las tarjetas multipuerto o los propios puertos de la placa base pueden trabajar compartiendo una interrupción, pero no se puede hacer esto entre tarjetas del bus ISA. Si tienes COM1 y COM2 en placa base, configuralas (si te deja la BIOS) como COM1 y COM3, de manera que los puertos que comparten la IRQ4 SEAN AMBOS DE LA PLACA BASE.
Después, configura el modem como COM2 (o como COM4), de forma que la IRQ3 la utilice SOLO EL MODEM.
Ajusta los dispositivos en tu programa para esta configuración y casi con seguridad, podrás hablar con tu modem. Yo ya he tenido unas cuantas peleas de este tipo.
Tu problema viene de que las IRQs no se pueden compartir en el bus ISA, y cuando ajustas un puerto RS232 en una IRQ, el gestor de bus, desconecta la IRQ del bus ISA, con lo que la interrupción del modem se pierde. Por eso, con toda probabilidad, el puerto COM3 funciona perfectamente (esta en placa base), pero COM1 (el modem) no.