如何将 REISUB 与 Apple 超薄铝制键盘一起使用?

如何将 REISUB 与 Apple 超薄铝制键盘一起使用?

我正在使用苹果超薄铝制键盘,它没有SysRq密钥:

苹果超薄铝制键盘

我应该按哪个键来神奇的 SysRq 键当我需要打字时重新订阅

答案1

这个答案也发布在这里

经过 3 到 4 个小时的艰苦搜索、阅读和反复试验,这是一个更全面和通用的答案,应该适用于任何Apple/Mac 笔记本电脑或键盘,不仅仅是“Apple 超薄铝制键盘”。不过,就我的特殊情况而言,我将此解决方案用于运行 Xubuntu 16.04 LTS 的 2008 年白色 MacBook。

非常感谢Bengt Olsson 的出色指导这让我开始弄清楚缺失的细节。

该解决方案是在用户空间完成的,不需要像某些建议那样重新编译内核。

  1. 下载 keyfuzz 的源代码,然后将其提取(例如,我可以右键单击它并转到“提取此处”以在我的 GUI 文件管理器中提取它)。要了解有关 keyfuzz 的更多信息,看这里。它是根据 GNU GPL 2.0 或更高版本的开源许可证发布的(开源啊!)。

    • 不要使用太深的目录(或可能有空格),否则./configure下面的命令将失败。
  2. 安装依赖项,否则./configure下面运行可能会出现一些错误:

    sudo apt-get update
    sudo apt-get install lynx xmltoman gengetopt
    
  3. 使用常用命令编译并安装keyfuzz:

    ./configure
    make
    sudo make install
    
  4. 导航到/dev/input/by-id并找到以 结尾的 Apple 键盘-event-kbd

    cd /dev/input/by-id
    ls
    

    对我来说是:

    usb-Apple_Computer_Apple_Internal_Keyboard___Trackpad-event-kbd
    
  5. 将以下行添加到您的/etc/rc.local文件中,以使此命令在每次计算机启动并加载此用户时运行。请注意,我们使用的是上面刚刚找到的 Apple 键盘条目。此命令使用 keyfuzz 来地图F12F13使用 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
      
  6. 重启。

现在我可以按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

刚刚这样做了。如果您不想像第一个答案的第一个链接中建议的那样重新编译内核,那么有一种更简单的方法。它在第一个答案的第二个链接中概述,但实际过程如下:

  1. 下载 keyfuzz 的源代码

  2. 使用常用命令进行编译和安装

    ./configure
    make
    sudo make install
    
  3. 将以下行添加到您的 /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 上工作正常。

答案3

我手头没有铝制键盘可以测试这一点,但是:

在 GNOME Shell 上:GNOME 调整 > 键盘和鼠标 > 其他布局选项…

截屏

在旧版本上:系统 > 偏好设置 > 键盘偏好设置 > 键盘布局选项 > 其他兼容性选项 > Apple 铝合金…

截屏

相关内容