Quello che ho trovato
Mi prenderò il tempo per spiegare alcune cose che ho scoperto. Questo dovrebbe aiutare le persone a capire perché questo è un processo così complicato e cosa possono fare per contribuire a migliorarlo, almeno per loro.
Innanzitutto, la radio Bluetooth su MBP è un dispositivo "USB". Questo è abbastanza comune su laptop e persino su alcuni desktop. Per questo motivo Linux lo considera come un dispositivo USB e puoi configurarlo di conseguenza.
In secondo luogo, la radio Bluetooth ha due modalità HID con un "profilo" molto semplice solo per tastiere e mouse. Questa modalità consente di utilizzare la tastiera prima che un'applicazione sia in grado di gestire il dispositivo Bluetooth. Ad esempio quando si utilizza la tastiera Bluetooth nel menu di GRUB, questa è la modalità NASCOSTA. Il tuo laptop e la tua tastiera devono ancora essere accoppiati, ma possono funzionare a questo livello molto basso senza problemi o interventi (ancora una volta associati). Tuttavia, la modalità HID è molto limitata e alcune cose non funzioneranno. Ad esempio, il livello della batteria della tastiera non funzionerà. Anche in modalità HID ho avuto difficoltà con i tasti funzione e i tasti multimediali (su questa tastiera sono lo stesso tasto e possono essere attivati dal software).
Successivamente, è necessario ottenere la tastiera per inviare "qualcosa" al laptop. È inoltre necessario che il laptop riceva "qualcosa". Quindi devi legare tutto insieme per far sì che il laptop si svegli davvero.
Infine, Linux, Ubuntu, Bluez o qualcuno sembra pensare che tutti i controller Bluetooth dovrebbero funzionare in modalità HCI. Questo è probabilmente un valore predefinito sensato dato che anche questa tastiera è molto limitata in modalità HID e che qualsiasi cosa oltre un semplice mouse e tastiera (ad esempio un telefono cellulare o un set di cuffie) richiederebbe la modalità HCI. Tuttavia, la modalità HCI richiede l'esecuzione di uno stack software completo e non funzionerà mentre il laptop è sospeso / inattivo / spento. Quindi, per impostazione predefinita, quando il laptop dorme si disconnette la tastiera e termina l'ascolto.
Passi effettivi per farlo funzionare
Passaggio 0: soluzione alternativa
Quando stavo facendo questo, ero molto frustrato dal fatto che non ero in grado di fare nulla per risolvere il problema. Non puoi fare nulla quando il laptop è addormentato, e almeno con i Mac Book Pro non puoi chiudere il coperchio senza che dormano. Quindi alla tua sinistra c'è una situazione in cui il video non funziona (perché sta andando al tuo monitor esterno che non è collegato quando scollegato) o puoi vedere tutto ma non ha la tastiera (perché non funziona / accoppiato / qualunque cosa, e quello interno non è accessibile). Per ovviare a questo, dovresti imbatterti in esso. Utilizzare la tastiera visiva nella schermata di accesso di LDM. Se ti svegli a una richiesta di password, dovresti essere in grado di fare clic su Cambia utente, quindi utilizzare la tastiera visiva per accedere. Finché accedi con lo stesso utente, la sessione non deve essere persa. Detto questo, non vorrei
Passaggio 1: pre-abbinare la tastiera.
Mentre stavo testando ho notato che questo passaggio era necessario. Tuttavia, non capisco perfettamente perché. Apple fa delle cose strane, quindi la lascerò andare.
- Ripristina PRAM / NVRAM / qualunque cosa. Questo cancellerà le tue attuali impostazioni di OS X e potrebbe non essere necessario, ma è meglio iniziare a pulire. Il sito Web dell'assistenza Apple contiene istruzioni . Non è necessario ripristinare la PMU.
- Avvia o riavvia in OS X e abbina normalmente la tastiera. Ti consiglio di lasciare tutti gli altri dispositivi Bluetooth spenti e di concentrarti sulla tastiera. Da quello che posso dire questo memorizzerà alcune informazioni in NVRAM e tutta la tastiera per comunicare con il laptop spento.
- Fai clic su Avanzate (in OS X, una volta associato) e seleziona "Consenti ai dispositivi Bluetooth di riattivare il computer". Ancora una volta il sito Web di supporto Apple contiene istruzioni
- Riavvia il computer su Linux. Su ReFIT / GRUB / durante l'avvio la tastiera dovrebbe funzionare bene.
Passaggio 2: far funzionare Linux con la tastiera
Per qualche motivo la tastiera perderà il suo accoppiamento durante il login. Probabilmente perché il controller Bluetooth è passato alla modalità HCI. Per correggere questo, è necessario associare in Linux. Ciò interromperà l'associazione eseguita nel passaggio 1, ma non interromperà la modalità HID quando il laptop è spento o in fase di avvio. Detto questo, al riavvio, la tastiera non funzionerà fino a quando lo stack bluetooth non sarà di nuovo completamente funzionante in modalità HCI. Questo perché la tastiera sta provando a parlare in modalità HCI ma nessuno sta ascoltando. Se si arresta e si attende il timeout della connessione, la tastiera funzionerà nuovamente in modalità HID.
- Installa bluez-compat eseguendo
sudo apt-get install bluez-compat
Questo ti permetterà di accoppiarti facilmente. Senza il Bluetooth Manager mi sono appena schiantato.
- Associa la tua tastiera normalmente a Linux. Esegui
Bluetooth
da Unity Dash e fai clic sul segno più. Metti la tastiera in modalità di associazione (tieni premuto il pulsante di accensione sulla tastiera della Apple Wireless Keyboard) e segui le istruzioni. Dovrebbe abbinarsi abbastanza uniformemente. A questo punto la tua tastiera dovrebbe funzionare bene in Linux e persino inviare segnali a un controller HID quando il laptop è inattivo.
Step 3: Dire a Linux che deve svegliarsi
Ora dobbiamo dire a Linux di svegliarsi se il dispositivo bluetooth ottiene "qualcosa". Fare questo è abbastanza facile grazie agli script di questo sito . Di seguito sono riportate le istruzioni di base, ma dovresti leggere il sito se qualcosa non è chiaro. Quasi tutto questo proviene dal sito collegato.
- Installa alcune dipendenze
sudo apt-get install notify-send zenity
- Scarica lo script resume udev e copia in / usr / local / sbin / enable-wakeup.
- Scarica lo script di selezione del dispositivo e copia su / usr / local / sbin / select-resume-devices
- Rendere eseguibili gli script:
chmod a+x /usr/local/sbin/select-resume-devices
e chmod a+x /usr/local/sbin/enable-wakeup
.
- Esegui con i permessi di root lo script di selezione del dispositivo.
sudo /usr/local/sbin/select-resume-devices
- Seleziona almeno "Controller host Bluetooth Apple, Inc.", "Belkin Components B8T017 Bluetooth + EDR 2.1", "Tastiera / trackpad interno Apple (ANSI)" e qualsiasi altro dispositivo che desideri utilizzare per ripristinare il computer .
- Clicca OK.
- Esamina il file /etc/udev/rules.d/90-hid-wakeup-enable.rules e assicurati che abbia senso.
- Riavvia il computer.
Passaggio 4: test e catture
Tutto dovrebbe funzionare correttamente ora che hai riavviato il computer. Una volta effettuato l'accesso, mettere il computer in modalità sospensione in qualche modo. Premi un tasto sulla tastiera e il laptop dovrebbe riprendere. Vi sono tuttavia un paio di catture.
- Quando il computer è in modalità sospensione, cerca i dispositivi HID. Quindi la tastiera si avvia in modalità HID. Quando hai finito di riprendere dalla modalità di sospensione, Linux è alla ricerca di un dispositivo HCI. La tastiera (non il laptop) deve ripristinare la connessione. Questo accade naturalmente dopo circa 45 secondi. Puoi forzarlo rimuovendo le batterie, ma ciò potrebbe rovinare l'accoppiamento. Se non si utilizza la tastiera per riprendere dal sonno, questo non è un problema.
- Al riavvio, la tastiera proverà comunque a comunicare in modalità HCI ma il laptop cercherà solo dispositivi HID. Ancora dopo il timeout la tastiera lo capirà e funzionerà di nuovo correttamente.