Alt+SysRq+B는 항상 트리거되지 않지만 REISU는 항상 트리거하는 이유는 무엇입니까?

Alt+SysRq+B는 항상 트리거되지 않지만 REISU는 항상 트리거하는 이유는 무엇입니까?

여러 다른 컴퓨터에서 작동이 멈추면 큰 피해 없이 Alt재부팅하기 위해 ++를 사용하는 경우가 많습니다. 그러나 +를 누르고 +를 놓지 않고 입력해도 명령이 작동하는 경우가 종종 있습니다 . 마지막 명령은 매우 "게으른" 것처럼 보입니다. 이 명령을 여러 번 반복해야 하지만 실제로는 그렇지 않습니다. 더 많은 반복을 할 때까지 실행하지 마십시오. " +를 누르고 B를 입력하고 +를 놓으십시오 " 횟수(항상 같은 횟수는 아님).SysRqREISUBREISUAltSysRqAltSysRqBAltSysRqAltSysRq

이 문제가 처음 발생했을 때는 커널이 너무 단단히 잠겨서 내 B명령을 "볼" 수 없기 때문인 줄 알았는데, 지금은 이 문제를 여러 번 반복하면 재부팅이 가능하다는 것을 깨달았을 때 이렇게 보입니다. 일반적인 현상. 작동하는 시스템(Debian, Ubuntu, LFS 등)에서도 이를 쉽게 재현할 수 있습니다. 실제로 커널을 로드 init=/bin/bash하고 이 bash 프롬프트에서 이를 재현할 수도 있습니다.

직렬 콘솔 출력을 보면 커널이 마침내 재부팅되었는지 확인하는 경우 REISU인쇄된 여러 명령에 대한 피드백 하나만 빼고 모두 표시됩니다.B

왜 이런거야? 우발적인 재설정을 방지하는 일종의 커널 기능이 있습니까, 아니면 단지 버그입니까(매우 이상함)?

멀티미디어 키가 없는 일반 키보드를 사용하고 있으므로 Fn이 질문은 중복되지 않습니다.이것.

답변1

문제는 소프트웨어가 아니라 하드웨어입니다. 키보드 키는 독립적이지 않습니다. 약 100개의 키가 있지만 키보드의 내부 컨트롤러에 연결되는 전선은 약 26개뿐입니다.

여기에 이미지 설명을 입력하세요.

(이미지 출처:dreamtime.com)

즉, 동시에 눌러도 모든 키가 감지되지는 않습니다. 그보다 더 가깝기 때문에 RAlt항상 한 손을 자유롭게 하여 문자를 입력하는 데 사용합니다. 하지만 대부분의 (모두?) PC 키보드++에서는 스캔 코드를 보내지 않는 것 같습니다! *SysRqLAltRAltSysRqBB

왜 재부팅이 되었나요? 간단합니다. 이 반만 작동하는 명령으로 컴퓨터를 재부팅할 수 없어 정말 짜증이 날 때 별 주의를 기울이지 않고 키 조합을 여러 번 누르며 때로는 키를 눌렀다가 떼는 것을 혼합하기도 합니다. 이는 전혀 그렇지 않은 것 같습니다. SysRqA Linux의 일반 수정자는 다음과 같습니다 . Magic-SysRq 모드는 Alt릴리스한 후에도 활성 상태 SysRq로 유지됩니다 Alt. 그러면 작동하는 것으로 보이는 순서는 다음과 같습니다.

  • ~에 따르면RAlt
  • ~에 따르면SysRq
  • 풀어 주다SysRq
  • ~에 따르면B
  • 다시 시작 보기

상황이 더 단순해 보이기 때문에 LAlt키보드는 + 를 누르고 있는 B것을 감지할 수 있으므로 문제가 없습니다. 하지만 저는 항상 를 사용하기 때문에 이전에는 이를 알아차린 적이 없습니다 .LAltSysRqRAlt

흥미롭게도 이 문제는 오래전부터 알려져 있었던 것 같고, 그 해결책도 제가 경험적으로 찾아낸 것과 같습니다. 커널 소스 트리에서,문서/sysrq.txt(강조):

x86에서 - "ALT-SysRq-<명령 키>" 키 조합을 누르십시오. 참고 - 일부 키보드에는 "SysRq"라는 라벨이 붙은 키가 없을 수도 있습니다. "SysRq" 키는 "Print Screen" 키라고도 합니다.또한 일부 키보드는 동시에 너무 많은 키를 누르는 것을 처리할 수 없으므로 "Alt", "SysRq 누르기", "SysRq 해제", "<명령 키> 누르기", 모든 키 해제를 사용하는 것이 더 나을 수도 있습니다.

따라서 이 팁은 공식적으로 권장되는 것이며 구현의 신뢰할 수 없는 부작용이 아닌 것으로 보입니다.

* 실제로 스캔된 모든 코드를 보고하는 간단한 DOS 프로그램을 사용하여 이를 확인했습니다.i8042각 IRQ1에 제공됨

관련 정보