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: