[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [YA SE LO QUE PASA...] Recuperar de cuelgue de X y consolas



Hola a todos, me confirmo a mi mismo y os envio dos chuletas ;-)


On Fri, Jan 07, 2000 at 12:26:06AM +0100, Manel Marin wrote:
> 
> ¡¡¡AL FIN HE DESCUBIERTO LO QUE PASA!!! (Me estaba volviendo loco)
> 
> La combinación ALT + SysRq + Tecla  NO FUNCIONA en algunos teclados,

Lo he verificado con cinco teclados, en uno de los cinco no va bien, (y no
 es la tecla que le he apretado fuerte y todas las demás teclas van bien)

Os adjunto dos archivos:
"teoria-teclado"
"trucos-cuelgueX"

Espero que os aprovechen... ;-)


> Enviamos un reporte de bug de kernel pidiendo que la tecla MAGIC no pierda su
> uso normal en las consolas (de hecho no lo pierde en las X en modo RAW y no
> pasa nada...)
> De esta forma se podria utilizar cualquier tecla normal para hacer de MAGIC,
> por ejemplo el DEL (DEL + Tecla)
> ...
> - ¿Que os parece?

Me lo he estado pensando y con opciones tan peligrosas como Umount, Boot, Reboot
 no me parece apropiado que todo principante utilice la tecla MAGIC... aunque
 a mi me parece GENIAL!!!


> - ¿Como se hace el reporte de bug del kernel? (nunca he hecho ninguno...)

!!!A ver si me contestais leches!!! :-(


Saludos
-- 
--------------------------------
Manel Marin   e-mail: manel3@apdo.com
Linux Powered (Debian 2.1 slink)
--------------------------------
teoria-teclado: (0.01)
	Breve descripción de como funciona el teclado


SCAN CODES:
    Estos son los códigos que envia el teclado al PC.
    Muchas teclas del teclado generan un byte de datos cuando se pulsan
     y otro cuando se sueltan.
    Tambien generan repetición si se mantienen pulsadas.

	Ejemplo tecla ESC

	    Al pulsar un codigo: 0x01
	    Al soltar un codigo: 0x81  ( es decir 0x01 + 0x80 )
	    Genera repetición al mantenerla pulsada


    Esto es cierto para muchas teclas excepto para:

	a) Teclas de cursor, Insert, Supr y grupito, teclas windows y otras...

	    Al pulsar dos codigos: 0xe0 XXX,
	    Al soltar dos codigos: 0xe0 XXX+0x80,
	    Generan repetición al mantenerlas pulsadas


	b) Tecla "Pause/Break"

	    Al pulsar seis codigos: 0xe1 0x1d 0x45 0xe1 0x9d 9xc5
	    Al soltar NADA
	    NO GENERA repetición al mantenerla pulsada


	c) Tecla "PrintScreen/SysRq" ** (De esta tecla hablo más abajo)

	    ¡¡¡DEPENDE DEL TECLADO!!!
	    ----ó----
	    Al pulsar cuatro codigos: Oxe0 0x2a 0xe0 0x37
	    Al soltar cuatro codigos: 0xe0 0xb7 0xe0 0xaa
	    Genera repetición al mantenerla pulsada
	    ----ó----
	    Al pulsar ocho codigos: 0xe0 0x2a 0xe0 0x37 0xe0 0xb7 0xe0 0xaa
	    Al soltar NADA:
	    NO GENERA repetición al mantenerla pulsada
	    ---------


    Ahora que ya sabes lo que esperas ver, puedes ver estos códigos usando:
     "showkey -s" (diez segundos sin pulsar nada para salir ;-)


KEYCODES:
    Estos son los códigos que asigna el kernel a las teclas.
    El kernel asigna un solo código para cualquier tecla cuando se pulsa y
     uno solo cuando se suelta.

	Muchos coinciden con el código SCAN CODE, pero los de dos/más bytes NO.
	
	Ejemplos:	SCAN CODE		KEYCODE*
	    ESC		0x01			  1
	    A		0x1e			 30  ( es 0x1e en hexadecimal )
	    Menu_Win	0x7F			127
	    Insert	0xe0 0x52		110
	    SysRq	Oxe0 0x2a 0xe0 0x37	 99

	* Los KEYCODE los pongo en decimal porque el "showkey" los muestra asi.

    Ahora que ya sabes lo que esperas ver, puedes ver estos códigos usando:
     "showkey" ó "showkey -k" (diez segundos sin pulsar nada para salir ;-)


SYSRQ:
    De cinco teclados que he probado uno solo generaba los ocho bytes al pulsar
     y ninguno al soltar.

    Obviamente este teclado no puede generar secuencias SysRq + Tecla, o
     ALT + SysRq + Tecla porque la secuencia que genera al pulsar SYSRQ es la
     de "pulsar + soltar" por lo que no funciona para hacer de MAGIC SYSRQ


    Este teclado era:
	Made in Malaysia
	Part No K5400408512
	Model No LT-5000A SPN102
	Serial No 90104AM03617
	( lo siento no se el fabricante...)

    Los otros teclados empleados en las pruebas eran:
	Cherry, IBM, un Windows "made in China", y otro clónico.
trucos-cuelgueX: (0.04)
	Como descolgar las X sin apagar la maquina ;-)


Para poder salir del modo RAW en que deja las X el teclado cuando se cuelgan
hay que recompilar el kernel (solo 2.2.X) activando la "Magic SysRq key"

ATENCION: La tecla MAGIC tiene opciones potencialmente peligrosas si no se
 sabe lo que se esta haciendo, aunque es tremendamente util cuando se sabe ;-)
    Ejemplo: Umount, Boot, Off, hacen lo que parece e inmediatamente y sin pedir
	confirmación...


-----------
1) Modificar en /usr/src/linux/include/asm/keyboard.h la linea

#define SYSRQ_KEY 0x54		/* Para usar ALT + SysRq + R */

    por:


#define SYSRQ_KEY 0x7F		/* Teclado Win Tecla_Menu + R */
#define SYSRQ_KEY 0x7E		/* Teclado Win Tecla_Win_Der + R */
#define SYSRQ_KEY 0x7D		/* Teclado Win Tecla_Win_Izq + R */

#define SYSRQ_KEY 0x4a		/* Para usar "-"(Numerico) + R */
		/* es una buena alternativa si no tienes teclas inutiles ;-) */
				

#define SYSRQ_KEY 0x63		/* Para usar SysRq (sin shift) + R */
				/* esta combinación permite hacer ALT + SysRq */


MOTIVO1: La combinación ALT + SysRq + Tecla  NO FUNCIONA en algunos teclados,
 Leer mi chuleta "teoria-teclado"

MOTIVO2: La combinación ALT + SysRq + Tecla  es incomoda
 (prueba a hacer un cierre ordenado con ALT(izq) + SysRq + E, I, S, U, O)

MOTIVO3: La combinación ALT + SysRq permite volver a la VC (consola virtual)
 anterior y cuando se asigna como tecla mágica esto deja de funcionar

!!!!(ESTO LO ESTOY COMPROBANDO...)!!!!
MOTIVO4: En el kernel 2.2.13 la combinación ALT + SysRq + Tecla  , a veces, de
 cuando en cuando, "se encasquilla" y no va...
    Parece que asignando una sola tecla, de las que generan un solo SCAN CODE
 (lee mi chuleta "teoria-teclado") esto no pasa...
 

COMO SABER EL CODIGO PARA ELEGIR OTRA TECLA DIFERENTE:
	"showkey" (10 segundos sin pulsar nada para salir)
    Atencion: Los codigos que da showkey son números decimales y hay que
     traducirlos a hexadecimal (SysRq da 99 que es 0x63)

    ATENCION: La tecla que se utilice como MAGIC deja de funcionar en las
     consolas virtuales, aunque sigue funcionando en las X

    NOTA: linux/Documentation/sysrq.txt esta equivocado, dice "showkey -s",
     esos son los codigos que genera el teclado realmente y no los que
     genera el kernel a partir de ellos, y no son lo mismo, aunque coinciden
     para muchas teclas...
     (mirar "man showkey" y mi chuleta "teoria-teclado" para mas info...)

-----------
2) Recompilar el kernel (2.2.13) activando la opción:
	Kernel hacking ->  Magic SysRq key

-----------
3) Instalar la imagen, ejecutar lilo, y reiniciar el S.O.

-----------
4) Ahora con MAGIC + R puedes salir del modo raw (se muestra la "r" pero las
  teclas siguientes ya van a las consolas), y hacer ALT+F1...

----------
Por cierto hay mas "teclas magicas":
	sa[K]	# Mata todos los procesos del terminal virtual,
		#  en consolas va bien...
#### BUSCANDO SOLUCION ####
		# Sobre X hace un reinicio si se usa wdm (xdm...) (bien;-)
		#  pero en algunos servidores X deja las consolas no operativas
		#  (registros de la VGA mal programados) estais avisados...

	t[E]rm, k[I]ll 			# Todos los procesos menos init
	[S]ync, [U]mount, [B]oot	# Para cierre cuando hay problemas graves

MAGIC+A (Ayuda) o MAGIC+H (Help) te da la lista de "teclas magicas" (solo desde
    una consola virtual, y no desde las X)
 Bueno esto lo hace, en general, cualquier tecla que no corresponda a una
    tecla ya asignada, pero teniendo opciones como:
	Off (apagado total inmediato)
	Boot (reinicio total e inmediato)
    es preferible asociar mentalmente "Ayuda" a la A para evitar desastres ;-)


-----------
APAGADO ORDENADO EN CUELGUE TOTAL (consolas no operativas):

1) Pulsar (dando tiempo a que reporten/hagan efecto) una detras de otra la
    secuencia:

	MAGIC + E , MAGIC + I, MAGIC + S, MAGIC + U, MAGIC + O

    - Se puede cambiar el ultimo "MAGIC + O" por "MAGIC + B" para reboot


MOTIVO:
    Este truco te evitará inconsistencias en el sistema de archivos, y el
     chequeo de sistema de archivos en el próximo arranque por no cerrar el
     sistema apropiadamente ;-)


----------
MAS AYUDA:
    con los fuentes del kernel 2.2.X en linux/Documentation/sysrq.txt
    mi chuleta "teoria-teclado"


----------
AGRADECIMIENTOS:
    Agradezco a todos las personas de la lista de correo debian-user-spanish
     la ayuda, puntualizaciones y observaciones que me han dado.

Reply to: