Как использовать REISUB с тонкой алюминиевой клавиатурой Apple?

14

Я использую алюминиевую клавиатуру Apple Slim , у которой нет SysRqклавиши:

Тонкая алюминиевая клавиатура Apple

Какие клавиши мне нужно нажимать для волшебной клавиши SysRq, когда мне нужно набрать REISUB ?

ændrük
источник
попробуйте это , и увидите это .. кажется, что у вас есть несколько вариантов :(
Axel
Отлично. Несколько замечательных комментариев / исправлений в обсуждении отчета об ошибках.
Чан-Хо Су

Ответы:

2

Этот ответ также размещен здесь .

После 3 или 4 часов напряженного поиска, чтения, проб и ошибок приведем более подробный и общий ответ, который подойдет для любого ноутбука или клавиатуры Apple / Mac, а не только для «тонкой алюминиевой клавиатуры Apple». В моем конкретном случае, однако, я использую это решение для MacBook 2008 года белого цвета с Xubuntu 16.04 LTS.

Большое спасибо Бенгту Олссону за его прекрасные инструкции, которые дали мне необходимое начало, чтобы выяснить недостающие детали.

Это решение выполняется в пользовательском пространстве и НЕ требует перекомпиляции ядра, как некоторые предложения.

  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 для сопоставления F12или F13на клавиатуре Apple или ноутбуке с системой « Magic SysRq key » для программных перезагрузок.

    • Чтобы отобразить 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 для мягкой перезагрузки компьютера. Прекрасно работает на моем ноутбуке MacBook 2008 под управлением Xubuntu 16.04 LTS.

Обратите внимание, что вы можете видеть результаты, возвращаемые с помощью команды REISUB, когда вы нажимаете каждую клавишу, сначала переходя к альтернативному сеансу с помощью Ctrl+ Alt+ F1( фактически, F1путем F6работы) перед выполнением команды. Чтобы вернуться к основному сеансу X Window, используйте Ctrl+ Alt+ F7.

Если вы получите результат, который говорит

This sysrq operation is disabled

это нормально для некоторых команд, так как они представляют потенциальную угрозу безопасности. Boot one все равно должен работать, позволяя перезагрузить компьютер. Вот еще немного информации об этом, от mniess здесь :

Начиная с Ubuntu 12.10 возможен более детальный контроль над включенными функциями Magic-SysRq. Просто отредактируйте файл /etc/sysctl.d/10-magic-sysrq.conf .

Файл хорошо документирован и говорит вам, как именно включить эти функции. Текущее значение по умолчанию было выбрано в целях безопасности и должно быть изменено только в том случае, если вы знаете, зачем это нужно (для информации о безопасности см. Ошибку № 194676 ).

Какая боль в заднице. :) ура.
Счастливого "линуксинга".
~ Габриэль Стейплс
www.ElectricRCAircraftGuy.com

Габриэль Стейплс
источник
Я использовал `sudo checkinstall -D --install` вместо того, sudo make installчтобы устанавливать keyfuzz как пакет.
Ярно
1
Я использовал код ключа 786616 для сопоставления Alt + Eject вместо F12 или F13.
Ярно
/etc/rc.localможет быть не включен в последних версиях Ubuntu; беги systemctl status rc-local.serviceсмотреть. В моем вопросе есть некоторая информация о том, как запустить keyfuzz с помощью systemd. Там я также попробовал другой способ переназначить ключ.
Ярно
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.

Бенгт Олссон
источник
У меня MacBook 2008 под управлением Xubuntu 16.04 LTS. Этот ноутбук не имеет F13 :(
Габриэль Стейплс
Я понял! Вместо этого отображается на F12! Спасибо за ваш ответ, который помог мне разобраться. Смотрите мой ответ здесь: askubuntu.com/a/896806/327339 .
Габриэль Стейплс
1

У меня нет клавиатуры под рукой, чтобы проверить это, но:

Система: Настройки: Настройки клавиатуры: Параметры раскладки клавиатуры: Различные варианты совместимости: Apple Alu…

ParanoiaPuppy
источник
Что это за приложение?
кот
Это был диалог настроек клавиатуры 10.04, доступный через основные настройки системы. Это древнее и, вероятно, выглядит совсем иначе в наши дни. Я не знаю, где найти текущий эквивалент; Я не использовал Ubuntu в течение некоторого времени.
ParanoiaPuppy
Это будет работать только для X11, а не для обработчика ядра Magic-SysRq.
Руслан