Jak obudzić się ze snu za pomocą klawiatury Bluetooth

8

Mam komputer Mac book pro i stację dokującą Henge. Stacja dokująca jest niczym więcej niż uchwytem, ​​który pozwala łatwo podłączyć kilka urządzeń, dzięki czemu można „zadokować” swój MBP. Mam też bezprzewodową klawiaturę Apple. Klawiatura jest bluetooth.

Klawiatura działa dobrze „normalnie”, ale problem polega na tym, że kiedy zamykam pokrywę mojego MBP, laptop przechodzi w tryb uśpienia (nie można temu zapobiec) umieszczam laptopa w stacji dokującej (z zamkniętą pokrywą) i nie mogę się obudzić spać (zakładam, ponieważ nie ma bluetooth). Jeśli użyję pada do wybudzenia urządzenia, pojawi się monit o hasło blokady ekranu, jednak nie mogę nic wprowadzić, ponieważ klawiatura Bluetooth nie jest podłączona.

Jak więc obudzić komputer Mac Book Pro ze stanu uśpienia za pomocą klawiatury Bluetooth (bezprzewodowa klawiatura Apple), a jeśli nie, zmusić go do ponownego połączenia po wznowieniu pracy komputera, aby móc wpisać hasło?

Oto moje szczegóły dotyczące sprzętu.

Mac Book Pro 6.2 (wiem, że to normalnie nie działa, ale jest to zamknięta platforma sprzętowa)

Magistrala 001 Urządzenie 008: ID 050d: 0017 Belkin Components B8T017 Bluetooth + EDR 2.1
Magistrala 001 Urządzenie 007: ID 05ac: 8218 Apple, Inc. Kontroler hosta Bluetooth

Wersja Linux

Linux macbook 3.5.0-22-generic #34-Ubuntu SMP

Ubuntu 12.10

Co zrobiłem:

Sparowałem moją bezprzewodową klawiaturę Apple z Ubuntu.

Czego oczekuję:

Kiedy zacieram klawisz na bezprzewodowej klawiaturze Apple, system budzi się ze snu.

Co się dzieje:

Kiedy zacieram klawisz na bezprzewodowej klawiaturze Apple; Nic.....

Czego oczekuję od akceptowalnej odpowiedzi:

Sposób, aby to zrobić, więc kiedy zacieram klawisz bezprzewodową klawiaturą Apple, komputer budzi się ze snu i mogę kontynuować dzień pracy.

Nutowy:

Zwykle nie lubię tego mówić i mówić, ale .... Działa w Mac OS X i Windows, więc wiem, że sprzęt jest w stanie to zrobić.

Coteyr
źródło

Odpowiedzi:

7

Co znalazłem

Poświęcę czas na wyjaśnienie kilku rzeczy, które się dowiedziałem. Powinno to pomóc ludziom zrozumieć, dlaczego jest to tak skomplikowany proces i co mogą zrobić, aby go ulepszyć, przynajmniej dla nich.

Po pierwsze, radio Bluetooth na MBP jest urządzeniem „USB”. Jest to dość powszechne na laptopach, a nawet niektórych komputerach stacjonarnych. Z tego powodu Linux traktuje to urządzenie jako urządzenie USB i można je odpowiednio skonfigurować.

Po drugie, radio Bluetooth ma dwa tryby Tryb HID z bardzo podstawowym „profilem” tylko dla klawiatur i myszy. Ten tryb umożliwia korzystanie z klawiatury, zanim aplikacja zarządzająca urządzeniem Bluetooth. Na przykład, gdy używasz klawiatury Bluetooth w menu GRUB, to jest tryb HID. Twój laptop i klawiatura nadal muszą być sparowane, ale mogą działać na tym bardzo niskim poziomie bez problemu lub interwencji (ponownie po sparowaniu). Jednak tryb HID jest bardzo ograniczony i niektóre rzeczy nie będą działać. Na przykład poziom naładowania baterii klawiatury nie będzie działać. Również w trybie HID miałem trudności z klawiszami funkcyjnymi i klawiszami multimediów (na tej klawiaturze są one tym samym klawiszem i można je przełączać programowo).

Następnie musisz poprosić klawiaturę o przesłanie „czegoś” do laptopa. Potrzebujesz także laptopa, aby otrzymać „coś”. Następnie musisz związać to wszystko razem, aby laptop rzeczywiście się obudził.

Wreszcie Linux, Ubuntu, Bluez lub ktoś wydaje się myśleć, że wszystkie kontrolery Bluetooth powinny działać w trybie HCI. Jest to prawdopodobnie bardzo rozsądna wartość domyślna, biorąc pod uwagę, że nawet ta klawiatura jest bardzo ograniczona w trybie HID i że wszystko poza zwykłą myszą i klawiaturą (na przykład telefon komórkowy lub zestaw słuchawkowy) wymagałoby trybu HCI. Jednak tryb HCI wymaga pełnego stosu oprogramowania do uruchomienia i nie będzie działać, gdy laptop jest zawieszony / uśpiony / wyłączony. Tak więc domyślnie, gdy laptop śpi, odłącza klawiaturę i przestaje słuchać.

Rzeczywiste kroki, aby to działało

Krok 0: Obejście

Kiedy to robiłem, byłem bardzo sfrustrowany faktem, że nie byłem w stanie nic zrobić, aby rozwiązać problem. Nie możesz nic zrobić, gdy laptop śpi, a przynajmniej dzięki komputerom Mac Book Pro nie możesz zamknąć pokrywy bez zasypiania. Po lewej stronie znajduje się sytuacja, w której albo wideo nie będzie działać (ponieważ idzie do zewnętrznego monitora, który nie jest podłączony po oddokowaniu) lub możesz zobaczyć wszystko, ale nie ma klawiatury (ponieważ nie działa / nie jest sparowany / cokolwiek, i wewnętrzny nie jest dostępny). Aby to obejść, na to wpadnij. Użyj klawiatury wizualnej na ekranie logowania LDM. Jeśli obudzisz się z pytaniem o hasło, powinieneś być w stanie kliknąć opcję przełączania użytkownika, a następnie zalogować się przy użyciu klawiatury wizualnej. Tak długo, jak logujesz się jako ten sam użytkownik, sesja nie powinna zostać utracona. To powiedziawszy, nie chciałbym

Krok 1: Wstępnie sparuj klawiaturę.

Podczas testowania zauważyłem, że ten krok był wymagany. Jednak nie do końca rozumiem dlaczego. Apple robi dziwne rzeczy, więc po prostu odpuszczę.

  1. Zresetuj PRAM / NVRAM / Cokolwiek. Spowoduje to wyczyszczenie bieżących ustawień systemu OS X i może nie być konieczne, ale lepiej rozpocząć czyszczenie. Witryna pomocy technicznej Apple zawiera instrukcje . Nie musisz resetować PMU.
  2. Uruchom lub uruchom ponownie system OS X i sparuj klawiaturę normalnie. Zalecam wyłączenie wszystkich innych urządzeń Bluetooth i skupienie się na klawiaturze. Z tego, co mogę powiedzieć, będzie przechowywać pewne informacje w pamięci NVRAM i całej klawiaturze do komunikacji z wyłączonym laptopem.
  3. Kliknij Zaawansowane (w OS X, po sparowaniu) i zaznacz „Zezwalaj urządzeniom Bluetooth na wybudzanie komputera”. Po raz kolejny strona wsparcia Apple zawiera instrukcje
  4. Uruchom ponownie komputer w systemie Linux. W ReFIT / GRUB / podczas uruchamiania klawiatura powinna działać dobrze.

Krok 2: Przygotowanie Linuksa do pracy z klawiaturą

Z jakiegoś powodu klawiatura straci połączenie podczas logowania. Prawdopodobnie dlatego, że kontroler Bluetooth został przełączony w tryb HCI. Aby to naprawić, musisz sparować w systemie Linux. Spowoduje to przerwanie parowania wykonanego w kroku 1, ale nie spowoduje przerwania trybu HID, gdy laptop zostanie wyłączony lub uruchomi się. To powiedziawszy, po ponownym uruchomieniu klawiatura nie będzie działać, dopóki stos Bluetooth nie uruchomi się ponownie w trybie HCI. Wynika to z faktu, że klawiatura próbuje rozmawiać w trybie HCI, ale nikt nie słucha. Jeśli zamkniesz się i zaczekasz na upłynięcie limitu czasu połączenia, klawiatura będzie działać ponownie w trybie HID.

  1. Zainstaluj Bluez-Computing, uruchamiając sudo apt-get install bluez-compatTo pozwoli ci na łatwe parowanie. Bez menedżera Bluetooth po prostu się zawiesiłem.
  2. Sparuj klawiaturę normalnie z systemem Linux. Uruchom Bluetoothz Unity Dash i kliknij plus. Przełącz klawiaturę w tryb parowania (przytrzymaj przycisk zasilania na klawiaturze bezprzewodowej Apple) i postępuj zgodnie z instrukcjami. Powinien sparować się dość płynnie. W tym momencie klawiatura powinna działać dobrze w systemie Linux, a nawet wysyłać sygnały do ​​kontrolera HID, gdy laptop śpi.

Krok 3: Powiedz Linuksowi, że musi się obudzić

Teraz musimy powiedzieć Linuksowi, żeby się obudził, jeśli urządzenie Bluetooth dostanie „coś”. Wykonanie tego jest dość łatwe dzięki skryptom na tej stronie . Podstawowe instrukcje są poniżej, ale jeśli coś jest niejasne , powinieneś przeczytać stronę . Prawie wszystko to pochodzi z połączonej strony.

  1. Zainstaluj niektóre zależności sudo apt-get install notify-send zenity
  2. Pobierz skrypt wznawiania udev i skopiuj do / usr / local / sbin / enable-wakeup.
  3. Pobierz skrypt wyboru urządzenia i skopiuj do / usr / local / sbin / select-resume-devices
  4. Spraw, aby skrypty były wykonywalne: chmod a+x /usr/local/sbin/select-resume-devicesi chmod a+x /usr/local/sbin/enable-wakeup.
  5. Uruchom z uprawnieniami administratora skrypt wyboru urządzenia. sudo /usr/local/sbin/select-resume-devices
  6. Wybierz przynajmniej „Apple, Inc. Kontroler hosta Bluetooth”, „Belkin Components B8T017 Bluetooth + EDR 2.1”, „Apple Inc. Wewnętrzna klawiatura / gładzik (ANSI)” i inne urządzenia, których chcesz użyć do wznowienia pracy z komputerem .
  7. Kliknij OK.
  8. Przejrzyj plik /etc/udev/rules.d/90-hid-wakeup-enable.rules i upewnij się, że ma to sens.
  9. Zrestartuj komputer.

Krok 4: Testowanie i połowy

Po ponownym uruchomieniu komputera wszystko powinno działać poprawnie. Po ponownym zalogowaniu przełącz komputer w tryb uśpienia. Trzaśnij klawisz na klawiaturze, a laptop powinien wznowić. Istnieje jednak kilka połowów.

  1. Gdy komputer znajduje się w trybie uśpienia, szuka urządzeń HID. Tak więc klawiatura uruchamia się w trybie HID. Po zakończeniu wznawiania pracy z trybu uśpienia Linux szuka urządzenia HCI. Klawiatura (nie laptop) musi zresetować połączenie. Dzieje się to naturalnie po około 45 sekundach. Możesz to wymusić, wyjmując baterie, ale może to popsuć parowanie. Jeśli nie używasz klawiatury do wznowienia pracy ze stanu uśpienia, nie stanowi to problemu.
  2. Podczas ponownego uruchamiania klawiatura będzie nadal próbować komunikować się w trybie HCI, ale laptop będzie szukał tylko urządzeń HID. Ponownie po upływie limitu czasu klawiatura go odzyska i będzie działać poprawnie ponownie.
Coteyr
źródło