SyRq를 사용하는 이 키 시퀀스가 ​​작동하지 않는 이유는 무엇입니까?

SyRq를 사용하는 이 키 시퀀스가 ​​작동하지 않는 이유는 무엇입니까?

zshell 및 Mate 데스크탑이 포함된 Fedora 20이 있습니다. 방금 이걸 봤어SysRq 키 사용에 대한 문서, 그러나 그들은 거기에 표시된 결과를 제공하지 않았습니다. Alt와 그 위에 "Print Scr"이 있는 "Home"이라는 레이블이 붙은 키를 SysRq 키 조합으로 사용합니다.

노란색 "FN" 키도 눌러봤지만 아무런 차이가 없습니다.

"시스템이 완전히 손상되더라도 재부팅" 순서는 매우 유용해 보이는데, 제가 뭘 잘못하고 있는지 궁금합니다.

답변1

SysRq 팀 구성을 비활성화했을 수 있습니다. 이것이 작동하려면 다음 사항이 충족되어야 합니다.

  • CONFIG_MAGIC_SYSRQ커널 구성에서 이를 활성화 해야 합니다 .
  • kernel.sysrqSysRq 조합을 해석할 수 있는 값으로 sysctl을 설정 해야 합니다 .

kernel.sysrq기능을 활성화/비활성화하는 비트마스크입니다.

  • 0 - 완전히 비활성화됨
  • 1 - 완전히 활성화됨
  • 2 - 콘솔 로깅 수준 제어 허용
  • 4 - 키보드 제어 허용
  • 8 - 제어 프로세스 덤프 허용
  • 16 - 제어 sync()호출 허용
  • 32 - 읽기 전용 재설치 허용
  • 64 - 프로세스 신호 허용
  • 128 - 시스템 전원 상태 변경 허용(재부팅/전원 끄기 등)
  • 256 - 크기 조정 작업이 실시간으로 실행되도록 허용

모든 SysRq 기능을 활성화하려는 경우 이 sysctl도구를 사용하여 임시로 값을 설정할 수 있습니다.

sysctl -w kernel.sysrq=1

이 작업을 영구적으로 수행하려면 다음 줄을 추가하세요 /etc/sysctl.conf.

kernel.sysrq = 1

/etc/sysctl.conf그런 다음 를 실행하여 시스템이 설정을 다시 로드하도록 할 수 있습니다 sysctl -p.

답변2

일반적으로 버튼을 누르면 키보드가 키코드를 생성합니다. 운영 체제는 키코드를 수신하고 일부 키 매핑을 적용하며 기본 하드웨어와 독립적으로 키 조합을 처리하려고 시도합니다.

SysRq 메커니즘은 약간 다릅니다. 키보드는 버튼을 한 번 누르는 것처럼 조합을 캡처하고 특수 키코드를 운영 체제에 보냅니다. Linux 커널은 X 서버와 같은 상위 수준 애플리케이션에 입력을 전달하지 않고 특수 키코드를 캡처하여 내부적으로 처리합니다. 이는 두 가지 결과를 의미합니다.

  1. 키 조합은 실제로 키보드에 따라 다릅니다. 키보드는 자체적으로 모든 키 누름을 캡처해야 하며 키보드만 실제 SysRq 키의 위치와 특수 키 코드 전송을 트리거하는 조합을 "알고" 있습니다. 그래서:

    • SysRq는 반드시 "Home" 또는 "Print Screen"과 동일한 버튼에 있을 필요는 없습니다. 검색해 보세요. 일반적으로 "SysRq"라는 레이블이 명확하게 표시되어 있습니다.
    • 다른 조합을 시도 Ctrl+Alt+SysRq+b 하거나 Ctrl+Alt+Fn+SysRq+b기다리십시오(경고, 성공하면 시스템이 재부팅됩니다). 해당 키가 있는 키보드에서는 Fn일반적으로 실제 키를 얻으려면 해당 키를 눌러야 하므로 SysRq조합에 해당 Fn키가 포함될 가능성이 높습니다.
  2. 올바른 조합이 언제인지 실제로 알 수 있습니다. xev터미널에서 실행하여 xev창에 초점을 맞추고 키보드의 일부 버튼을 클릭하면 터미널에 이벤트가 나타나는 것을 볼 수 있습니다. 올바른 조합을 얻으면 이벤트가 커널에 의해 포착되고 X 서버로 전달되지 않기 때문에 이벤트를 받아서는 안 됩니다.

또한 다음 문서를 참조하세요.https://www.kernel.org/doc/Documentation/sysrq.txt

관련 정보