¿Por qué no funciona esta secuencia de teclas, usando SyRq?

¿Por qué no funciona esta secuencia de teclas, usando SyRq?

Tengo Fedora 20, con zshell y escritorio Mate. Me acabo de encontrar con estoartículo sobre el uso de claves SysRq, pero no dan los resultados que allí se muestran. Estoy usando Alt con la tecla marcada "Inicio" con "Imprimir Scr" encima como combinación de teclas SysRq.

También intenté mantener presionada la tecla amarilla "FN", pero esto no hizo ninguna diferencia.

Dado que la secuencia "Reiniciar incluso si el sistema está completamente roto" parece muy útil, me gustaría saber qué estoy haciendo mal.

Respuesta1

Probablemente tengas las combinaciones SysRq deshabilitadas. Hay algunas cosas que deben ser ciertas para que esto funcione:

  • Debes tenerlo CONFIG_MAGIC_SYSRQhabilitado en la configuración de tu kernel.
  • Debe tener kernel.sysrqsysctl configurado en un valor que permita interpretar combinaciones SysRq.

kernel.sysrqes una máscara de bits para habilitar/deshabilitar funciones:

  • 0 - Completamente deshabilitado
  • 1 - Completamente habilitado
  • 2 - Permitir controlar el nivel de registro de la consola
  • 4 - Permitir controlar el teclado
  • 8 - Permitir controlar los volcados de procesos
  • 16 - Permitir controlar sync()llamadas
  • 32 - Permitir remontar solo lectura
  • 64 - Permitir señalización de proceso
  • 128 - Permitir alterar el estado de energía del sistema (reiniciar/apagar/etc.)
  • 256: permitir que las tareas de renovación se ejecuten en tiempo real

Suponiendo que desea habilitar todas las funciones SysRq, puede establecer el valor temporalmente usando la sysctlherramienta:

sysctl -w kernel.sysrq=1

Para hacer esto de forma permanente, agregue la siguiente línea a /etc/sysctl.conf:

kernel.sysrq = 1

Luego puede hacer que el sistema vuelva a cargar la configuración /etc/sysctl.confemitiendo sysctl -p.

Respuesta2

Normalmente, cuando presionas un botón, el teclado genera un único código clave. El sistema operativo recibe códigos clave, aplica cierta asignación de claves e intenta manejar combinaciones de teclas independientemente del hardware subyacente.

El mecanismo SysRq es un poco diferente: el teclado capta la combinación y envía un código de tecla especial al sistema operativo como si se hubiera presionado un solo botón. El kernel de Linux captura el código clave especial y lo maneja internamente sin reenviar la entrada a aplicaciones de nivel superior como el servidor X. Eso implica las dos consecuencias:

  1. La combinación de teclas realmente depende del teclado. El teclado debe captar la tecla todas las pulsaciones por sí solo y sólo el teclado "sabe" dónde está ubicada la tecla SysRq real y qué combinación activa el envío del código de tecla especial. Entonces:

    • SysRq no está necesariamente ubicado en el mismo botón que "Inicio" o "Imprimir pantalla", intente buscarlo, generalmente está marcado explícitamente como "SysRq".
    • Pruebe diferentes combinaciones: Ctrl+Alt+SysRq+b o Ctrl+Alt+Fn+SysRq+b, etc. (advertencia, el sistema se reiniciará si tiene éxito). En los teclados que tienen la Fntecla, normalmente tienes que presionarla para llegar a la SysRqtecla real, por lo que es probable que tu combinación involucre la Fntecla.
  2. De hecho, puedes saber cuándo aciertas con la combinación. Ejecute xevdesde una terminal, enfoque la xevventana y presione algunos botones en el teclado, debería ver que aparecen eventos en la terminal. Cuando obtiene una combinación correcta, NO debería obtener un evento porque el kernel lo captura y no lo entrega al servidor X.

Consulte también la documentación:https://www.kernel.org/doc/Documentation/sysrq.txt

información relacionada