我的计算机/proc/sys/kernel/sysrq
包含数字502,但Alt + SysRq + ...似乎无法在我的HP Pavilion笔记本电脑上使用。我该如何解决?
更新1:顺便说一句:我的打印屏幕键或任何其他键都没有附加标签,如“ SysRq”。
更新2:
- 硬件型号:HP Pavilion 17笔记本电脑
- 键盘布局:德语,QWERTZ
我的计算机/proc/sys/kernel/sysrq
包含数字502,但Alt + SysRq + ...似乎无法在我的HP Pavilion笔记本电脑上使用。我该如何解决?
更新1:顺便说一句:我的打印屏幕键或任何其他键都没有附加标签,如“ SysRq”。
更新2:
Answers:
大多数笔记本电脑需要按键Fn才能获取SysRq密钥。按下Fn通常不会影响Alt按键(至少是左键),但是可能会影响您在之后按的字母SysRq。幸运的是,您无需同时按SysRq和第三个键,只需按住即可Alt。以下顺序适用于我所见过的所有笔记本电脑:
该SysRq键通常是相同的密钥PrintScreen。如果您的键盘上没有标有SysRq或的键PrintScreen,则可能没有可以发送Linux期望的扫描代码的键。出于魔术SysRq的目的,SysRq密钥是发送扫描代码99的密钥。
使用PS / 2键盘(包括笔记本电脑的内部键盘),找出按键发送的扫描代码,登录到文本控制台(按Ctrl+ Alt+ F1切换到文本控制台,通常Ctrl+ Alt+ F7返回GUI) ),然后运行命令showkey -s
。showkey -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键盘。
setkeycodes: failed to set scancode 90 to keycode 99: ioctl KDSETKEYCODE: Invalid argument
。不幸的是,我的笔记本电脑上有一个Apple键盘。