Como fazer o SysRq funcionar no laptop?

12

Meu /proc/sys/kernel/sysrqcontém o número 502, mas Alt + SysRq + ... parece não funcionar no meu laptop HP Pavilion. Como posso consertar isso?

Atualização 1: A propósito: nem minha chave de impressão da tela nem qualquer outra chave possui uma etiqueta adicional como "SysRq".

Atualização 2:

  • Modelo de hardware: PC Notebook HP Pavilion 17
  • Layout do teclado: alemão, QWERTZ
Al Klimov
fonte
Parece não funcionar.
Al Klimov
Qual modelo exato de laptop você possui e qual layout de teclado? Quais chaves você já tentou?
Gilles 'SO- stop be evil' (
Eu tentei a tecla print-screen com e sem Fn e com e sem CapsLock.
Al Klimov

Respostas:

15

A maioria dos laptops exige pressionar Fnpara obter a SysRqtecla. Pressionar Fngeralmente não afeta a Alttecla (pelo menos a esquerda), mas pode afetar a letra que você pressiona depois SysRq. Felizmente, você não precisa pressionar SysRqe a terceira tecla juntas, basta pressionar Alt. A sequência a seguir funciona em todos os laptops que eu já vi:

  1. Pressione e segure Alt.
  2. Pressione Fn, pressione a SysRqtecla e solte os dois.
  3. Resumidamente, a letra ou a tecla de pontuação, por exemplo, Spara sincronizar.
  4. Lançamento Alt.

A SysRqchave é geralmente a mesma chave que PrintScreen. Se o seu teclado não tiver uma tecla SysRqou PrintScreen, pode não ter uma tecla que envie o código de verificação que o Linux espera. Para fins de mágica SysRq, a SysRqchave é a que envia o código de verificação 99.

Com um teclado PS / 2 (incluindo o teclado interno de um laptop), para descobrir qual código de verificação uma tecla envia, entre no console de texto (pressione Ctrl+ Alt+ F1para alternar para um console de texto e, geralmente, Ctrl+ Alt+ F7para voltar à GUI ), e execute o comando showkey -s. showkey -sexibe o código de verificação de cada tecla enquanto você digita. Geralmente, é um byte (dois dígitos hexadecimais) para pressionar uma tecla e depois outro byte para a liberação da tecla. Para algumas chaves, você obterá uma sequência de bytes composta por dois bytes começando com e0. Pressione a tecla de seu interesse, aguarde 10 segundos e showkeysairá.

Agora que você identificou um código de verificação, execute setkeycodes … 99como root para atribuir esse código ao código de chave 99. Por exemplo, se showkey -simprimir 0xe0 0x6f 0xe0 0xefpara a chave que você escolheu, execute setkeycodes e06f 99.

Para tornar essa alteração permanente, adicione o setkeycodescomando /etc/rc.localou configure o udev para alterar os mapeamentos de código de chave . A configuração do udev é a única solução para um teclado USB, setkeycodesnão afeta os teclados USB.

Gilles 'SO- parar de ser mau'
fonte
Parece não funcionar.
Al Klimov
@AlKlimov Você precisa pressionar a tecla SysRq. Se o seu teclado não possui uma tecla SysRq, isso é obviamente um problema. Veja minha resposta editada.
Gilles 'SO- stop be evil'
Não consegui girar minha tecla PrintScreen, mas pude, por exemplo, minha tecla F12. Estranho, estranho ..
Al Klimov
Gênio! Tentei com e sem as teclas fn tantas vezes, mas nunca pensei em combiná-lo com sua abordagem. Obrigado!
Adam Plocher
Eu recebo: setkeycodes: failed to set scancode 90 to keycode 99: ioctl KDSETKEYCODE: Invalid argument. Infelizmente, tenho um teclado Apple no meu laptop.
Toothrot 29/03
1

Estou usando um novo laptop HP pavilion, mesmo problema. O que funcionou para mim foi pressionar a tecla AltGr com a tecla da tela de impressão

oliver
fonte