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


12

我的计算机/proc/sys/kernel/sysrq包含数字502,但Alt + SysRq + ...似乎无法在我的HP Pavilion笔记本电脑上使用。我该如何解决?

更新1:顺便说一句:我的打印屏幕键或任何其他键都没有附加标签,如“ SysRq”。

更新2:

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

似乎不起作用。
Al Klimov 2015年

您有什么确切的笔记本电脑型号,键盘布局是什么?您尝试过哪些键?
吉尔(Gilles)'所以

我已经尝试了带有和不带有Fn以及带有和不带有CapsLock的打印屏幕键。
Al Klimov

Answers:


15

大多数笔记本电脑需要按键Fn才能获取SysRq密钥。按下Fn通常不会影响Alt按键(至少是左键),但是可能会影响您在之后按的字母SysRq。幸运的是,您无需同时按SysRq和第三个键,只需按住即可Alt。以下顺序适用于我所见过的所有笔记本电脑:

  1. 按住Alt
  2. FnSysRq按键,然后同时松开。
  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键盘。


似乎不起作用。
Al Klimov

@AlKlimov您需要按SysRq键。如果您的键盘没有SysRq键,那显然是个问题。看到我编辑的答案。
吉尔斯(Gilles)'SO-不再是邪恶的'

我无法打开我的PrintScreen键,但可以打开例如F12键。奇怪,奇怪..
Al Klimov

天才!我尝试了很多次使用和不使用fn键,但从未想过将其与您的方法混合使用。谢谢!
亚当·普洛彻

我得到:setkeycodes: failed to set scancode 90 to keycode 99: ioctl KDSETKEYCODE: Invalid argument。不幸的是,我的笔记本电脑上有一个Apple键盘。
Toothrot

1

我一直在使用更新的HP Pavilion笔记本电脑,同样的问题。对我有用的是用打印屏幕键按AltGr键

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.