Что я нашел
Я собираюсь не торопиться, чтобы объяснить несколько вещей, которые я узнал. Это должно помочь людям понять, почему это такой сложный процесс, и что они могут сделать, чтобы сделать его лучше, по крайней мере, для них.
Во-первых, Bluetooth-радио на MBP - это устройство «USB». Это довольно часто встречается на ноутбуках и даже на некоторых компьютерах. Из-за этого Linux рассматривает его как устройство USB, и вы можете настроить его соответствующим образом.
Во-вторых, радиоприемник Bluetooth имеет два режима HID с очень простым «профилем» только для клавиатур и мышей. Этот режим позволяет использовать клавиатуру до того, как появится приложение, управляющее устройством Bluetooth. Например, когда вы используете клавиатуру Bluetooth в меню GRUB, это режим HID. Ваш ноутбук и клавиатура по-прежнему должны быть сопряжены, но они могут работать на этом очень низком уровне без проблем или вмешательства (снова после сопряжения). Однако режим HID очень ограничен, и некоторые вещи не будут работать. Например, уровень заряда батареи клавиатуры не будет работать. Также в режиме HID мне было трудно работать с функциональными клавишами и мультимедийными клавишами (на этой клавиатуре это одна и та же клавиша, и ее можно переключать программно).
Далее нужно заставить клавиатуру отправлять «что-то» на ноутбук. Вам также нужен ноутбук, чтобы получить «что-то». Затем вы должны связать все это вместе, чтобы ноутбук действительно проснулся.
Наконец, Linux, Ubuntu, Bluez или кто-то еще считают, что все контроллеры Bluetooth должны работать в режиме HCI. Это, вероятно, очень разумное значение по умолчанию, учитывая, что даже эта клавиатура очень ограничена в режиме HID, и что для чего-либо, кроме простой мыши и клавиатуры (например, мобильного телефона или гарнитуры), потребуется режим HCI. Однако для работы режима HCI требуется полный программный стек, и он не будет работать, пока ноутбук находится в режиме ожидания / сна / выключен. Поэтому по умолчанию, когда ваш ноутбук спит, он отключает клавиатуру и прекращает прослушивание.
Фактические Шаги, чтобы заставить это Работать
Шаг 0: обходной путь
Когда я делал это, меня очень расстраивал тот факт, что я ничего не мог сделать, чтобы решить проблему. Вы ничего не можете сделать, когда ноутбук спит, и, по крайней мере, с Mac Book Pro вы не сможете закрыть крышку, пока они не заснут. Таким образом, у вас осталась ситуация, когда либо видео не будет работать (потому что оно идет на внешний монитор, который не подключен при отсоединении), либо вы можете видеть все, но у вас нет клавиатуры (потому что оно не работает / сопряжено / что-либо еще, и внутренний недоступен). Чтобы обойти это, вы должны столкнуться с этим. Используйте визуальную клавиатуру на экране входа в систему LDM. Если вы проснетесь, чтобы получить приглашение на ввод пароля, вы сможете нажать кнопку переключения пользователя, а затем использовать визуальную клавиатуру для входа в систему. Пока вы входите в систему как тот же пользователь, ваша сессия не должна быть потеряна. Тем не менее, я бы не
Шаг 1: предварительно соедините вашу клавиатуру.
Когда я тестировал, я заметил, что этот шаг необходим. Однако я не совсем понимаю, почему. Apple делает странные вещи, так что я просто позволю этому уйти.
- Сбросьте свой PRAM / NVRAM / что угодно. Это очистит ваши текущие настройки OS X и, возможно, не понадобится, но лучше начать чистку. На веб-сайте поддержки Apple есть инструкции . Вам не нужно сбрасывать PMU.
- Запустите или перезапустите OS X и выполните обычное сопряжение клавиатуры. Я рекомендую оставить все остальные устройства Bluetooth выключенными и сосредоточиться на клавиатуре. Из того, что я могу сказать, это будет хранить некоторую информацию в NVRAM и на всей клавиатуре для связи с выключенным ноутбуком.
- Нажмите «Дополнительно» (в OS X, после сопряжения) и установите флажок «Разрешить устройствам Bluetooth пробуждать компьютер». Еще раз на сайте поддержки Apple есть инструкции
- Перезагрузите компьютер в Linux. При ReFIT / GRUB / при загрузке клавиатура должна работать просто отлично.
Шаг 2: Как заставить Linux работать с клавиатурой
По какой-то причине клавиатура теряет соединение при входе в систему. Возможно, потому что контроллер Bluetooth переключен в режим HCI. Чтобы исправить это, вам нужно создать пару в Linux. Это нарушит сопряжение, которое вы делали на шаге 1, но не нарушит режим HID, когда ноутбук выключен или загружается. Тем не менее, когда вы перезагружаетесь, ваша клавиатура не будет работать, пока ваш стек Bluetooth снова не заработает полностью в режиме HCI. Это потому, что клавиатура пытается говорить в режиме HCI, но никто не слушает. Если вы выключите и дождитесь истечения времени ожидания соединения, клавиатура снова будет работать в режиме HID.
- Установите bluez-compat, запустив
sudo apt-get install bluez-compat
Это позволит вам с легкостью выполнить сопряжение. Без менеджера Bluetooth просто рухнул для меня.
- Сопряжение вашей клавиатуры обычно с Linux. Запустите
Bluetooth
из Unity Dash и нажмите на плюс. Переведите клавиатуру в режим сопряжения (удерживайте кнопку питания на беспроводной клавиатуре Apple) и следуйте инструкциям. Это должно соединиться довольно гладко. На этом этапе ваша клавиатура должна отлично работать в Linux и даже отправлять сигналы на HID-контроллер, когда ноутбук спит.
Шаг 3: Говоря Linux, он должен проснуться
Теперь нам нужно сказать Linux, чтобы он проснулся, если устройство bluetooth получает «что-то». Сделать это довольно легко благодаря скриптам на этом сайте . Основные инструкции приведены ниже, но вы должны прочитать сайт, если что-то неясно. Почти все это происходит с сайта, на который ведут ссылки.
- Установите некоторые зависимости
sudo apt-get install notify-send zenity
- Загрузите скрипт возобновления udev и скопируйте его в / usr / local / sbin / enable-wakeup.
- Загрузите скрипт выбора устройства и скопируйте в / usr / local / sbin / select-resume-devices
- Сделайте скрипты исполняемыми:
chmod a+x /usr/local/sbin/select-resume-devices
и chmod a+x /usr/local/sbin/enable-wakeup
.
- Запустите с правами root скрипт выбора устройства.
sudo /usr/local/sbin/select-resume-devices
- Выберите, как минимум, «Хост-контроллер Bluetooth Apple Inc.», «Компоненты Belkin B8T017 Bluetooth + EDR 2.1», «Внутренняя клавиатура / трекпад Apple Inc.» (ANSI) »и любые другие устройства, которые вы хотите использовать для возобновления работы компьютера. ,
- Нажмите ОК.
- Просмотрите файл /etc/udev/rules.d/90-hid-wakeup-enable.rules и убедитесь, что он имеет смысл.
- Перезагрузите компьютер.
Шаг 4: Тестирование и ловли
Теперь все должно работать нормально после перезагрузки компьютера. После того, как вы снова вошли в систему, переведите компьютер в спящий режим. Нажмите на клавиатуру, и ноутбук должен возобновить работу. Однако есть несколько уловов.
- Когда компьютер находится в спящем режиме, он ищет устройства HID. Таким образом, клавиатура запускается в режиме HID. Когда вы закончите выход из спящего режима, Linux ищет устройство HCI. Клавиатура (не ноутбук) должна сбросить соединение. Это происходит естественным образом примерно через 45 секунд. Вы можете форсировать его, вынув батареи, но это может испортить соединение. Если вы не используете клавиатуру для выхода из сна, это не проблема.
- При перезагрузке клавиатура все еще будет пытаться установить связь в режиме HCI, но ноутбук будет только искать устройства HID. Снова по истечении времени ожидания клавиатура получит его и снова будет работать правильно.