我正在使用苹果超薄铝制键盘,它没有SysRq密钥:
我应该按哪个键来神奇的 SysRq 键当我需要打字时重新订阅?
答案1
这个答案也发布在这里。
经过 3 到 4 个小时的艰苦搜索、阅读和反复试验,这是一个更全面和通用的答案,应该适用于任何Apple/Mac 笔记本电脑或键盘,不仅仅是“Apple 超薄铝制键盘”。不过,就我的特殊情况而言,我将此解决方案用于运行 Xubuntu 16.04 LTS 的 2008 年白色 MacBook。
非常感谢Bengt Olsson 的出色指导这让我开始弄清楚缺失的细节。
该解决方案是在用户空间完成的,不需要像某些建议那样重新编译内核。
下载 keyfuzz 的源代码,然后将其提取(例如,我可以右键单击它并转到“提取此处”以在我的 GUI 文件管理器中提取它)。要了解有关 keyfuzz 的更多信息,看这里。它是根据 GNU GPL 2.0 或更高版本的开源许可证发布的(开源啊!)。
- 不要使用太深的目录(或可能有空格),否则
./configure
下面的命令将失败。
- 不要使用太深的目录(或可能有空格),否则
安装依赖项,否则
./configure
下面运行可能会出现一些错误:sudo apt-get update sudo apt-get install lynx xmltoman gengetopt
使用常用命令编译并安装keyfuzz:
./configure make sudo make install
导航到
/dev/input/by-id
并找到以 结尾的 Apple 键盘-event-kbd
:cd /dev/input/by-id ls
对我来说是:
usb-Apple_Computer_Apple_Internal_Keyboard___Trackpad-event-kbd
将以下行添加到您的
/etc/rc.local
文件中,以使此命令在每次计算机启动并加载此用户时运行。请注意,我们使用的是上面刚刚找到的 Apple 键盘条目。此命令使用 keyfuzz 来地图F12或F13使用 Apple 键盘或笔记本电脑访问系统”神奇的 SysRq 键“,进行软重启。- 要映射F12到 SysRq:
458821 99
。非常感谢“pjjjv”解决了这个问题这里! - 要映射F13到 SysRq:
458856 99
。 - 由于我的 MacBook 2008 没有F13,所以我使用F12上面的选项。另外请记住使用我们上面找到的正确键盘输入。我为我的情况添加的命令
rc.local
是:echo "458821 99" | keyfuzz -s -d /dev/input/by-id/usb-Apple_Computer_Apple_Internal_Keyboard___Trackpad-event-kbd
- 这是我的整个
/etc/rc.local
文件,包含适当的条目:#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. echo "458821 99" | keyfuzz -s -d /dev/input/by-id/usb-Apple_Computer_Apple_Internal_Keyboard___Trackpad-event-kbd exit 0
- 要映射F12到 SysRq:
重启。
现在我可以按Alt+ F12(或者您可以按照上面所述使用Alt+ F13)并发出 REISUB 来软重启您的计算机。在运行 Xubuntu 16.04 LTS 的 MacBook 2008 笔记本电脑上完美运行。
请注意,您可以看到发出 REISUB 后按每个键返回的结果,方法是先使用Ctrl+ Alt+ F1(实际上F1是通过F6work)跳转到备用会话,然后再发出命令。要返回主 X Window 会话,请使用Ctrl+ Alt+ F7。
如果你得到的结果显示
This sysrq operation is disabled
对于几个命令来说,这很正常,因为它们会带来潜在的安全风险。但是,Boot 命令应该仍然有效,允许您软重启计算机。以下是有关此问题的更多信息,来自 mniess:
从 Ubuntu 12.10 开始,可以更细粒度地控制启用哪些 Magic-SysRq 功能。只需编辑文件/etc/sysctl.d/10-magic-sysrq.conf。
该文件有详尽的文档,并会告诉您如何启用哪些功能。当前默认设置是出于安全目的而选择的,只有在您知道为什么需要更改时才应更改(有关安全影响,请参阅错误 #194676)。
答案2
刚刚这样做了。如果您不想像第一个答案的第一个链接中建议的那样重新编译内核,那么有一种更简单的方法。它在第一个答案的第二个链接中概述,但实际过程如下:
使用常用命令进行编译和安装
./configure make sudo make install
将以下行添加到您的 /etc/rc.local 文件:
echo "458856 99" | sudo /usr/local/sbin/keyfuzz -s -d /dev/input/by-id/usb-Apple__Inc_Apple_Keyboard-event-kbd
现在应该可以按Alt+F13并发出 REISUB。在我的 Xubuntu 15.10 上工作正常。