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ę.
- 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.
- 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.
- Kliknij Zaawansowane (w OS X, po sparowaniu) i zaznacz „Zezwalaj urządzeniom Bluetooth na wybudzanie komputera”. Po raz kolejny strona wsparcia Apple zawiera instrukcje
- 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.
- Zainstaluj Bluez-Computing, uruchamiając
sudo apt-get install bluez-compat
To pozwoli ci na łatwe parowanie. Bez menedżera Bluetooth po prostu się zawiesiłem.
- Sparuj klawiaturę normalnie z systemem Linux. Uruchom
Bluetooth
z 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.
- Zainstaluj niektóre zależności
sudo apt-get install notify-send zenity
- Pobierz skrypt wznawiania udev i skopiuj do / usr / local / sbin / enable-wakeup.
- Pobierz skrypt wyboru urządzenia i skopiuj do / usr / local / sbin / select-resume-devices
- Spraw, aby skrypty były wykonywalne:
chmod a+x /usr/local/sbin/select-resume-devices
i chmod a+x /usr/local/sbin/enable-wakeup
.
- Uruchom z uprawnieniami administratora skrypt wyboru urządzenia.
sudo /usr/local/sbin/select-resume-devices
- 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 .
- Kliknij OK.
- Przejrzyj plik /etc/udev/rules.d/90-hid-wakeup-enable.rules i upewnij się, że ma to sens.
- 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.
- 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.
- 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.