如何让 SysRq 在笔记本电脑上工作?

Al *_*mov 14 keyboard-layout magic-sysrq linux-kernel

我的/proc/sys/kernel/sysrq包含数字 502,但 Alt+SysRq+... 似乎不适用于我的 HP Pavilion 笔记本电脑。我该如何解决?

更新 1:顺便说一下:我的打印屏幕键和任何其他键都没有像“SysRq”这样的附加标签。

更新 2:

  • 硬件型号:HP Pavilion 17 笔记本电脑
  • 键盘布局:德语、QWERTZ

Gil*_*il' 18

大多数笔记本电脑需要按下Fn才能获得SysRq钥匙。按Fn通常不会影响该Alt键(至少是左边的那个),但可能会影响您在 之后按的字母SysRq。幸运的是,你不需要同时按下SysRq和第三个键,按住就够Alt了。以下序列适用于我见过的所有笔记本电脑:

  1. 按住Alt
  2. Fn,按SysRq键,然后松开。
  3. 简短的字母或标点符号键,例如S同步。
  4. 释放Alt

SysRq键通常是相同的密钥PrintScreen。如果您的键盘没有标有SysRq或的键PrintScreen,则它可能没有发送 Linux 期望的扫描码的键。出于魔术 SysRq 的目的,SysRq密钥是发送扫描代码 99 的任何一个密钥。

使用 PS/2 键盘(包括笔记本电脑的内置键盘),要找出按键发送的扫描码,登录到文本控制台(按Ctrl+ Alt+F1切换到文本控制台,通常按Ctrl+ Alt+F7返回 GUI ),然后运行命令showkey -sshowkey -s在您键入时显示每个键的扫描码。这通常是一个字节(两个十六进制数字)用于按键,然后是另一个用于按键释放的字节。对于一些键,您将获得一个由两个字节组成的字节序列,以e0. 按您感兴趣的键,然后等待 10 秒钟,showkey将退出。

既然您已经确定了一个扫描代码,请setkeycodes … 99以 root 身份运行以将该扫描代码分配给键代码 99。例如,如果为您选择的键showkey -s打印0xe0 0x6f 0xe0 0xef,请运行setkeycodes e06f 99

要使此更改永久化,请将setkeycodes命令添加到/etc/rc.local配置 udev 以更改键码映射。配置 udev 是 USB 键盘的唯一解决方案,setkeycodes不会影响 USB 键盘。