Quando esegui il dual boot di Windows 7/10 e Linux Mint/Ubuntu, potresti ritrovarti a dover riassociare i tuoi dispositivi Bluetooth ancora e ancora. Ciò accadrà ogni volta che cambi OS.
Ora, come lo previeni?
Sto rispondendo alla mia domanda con la seguente guida, che è stata testata su Ubuntu 14.4 e Linux Mint 17.2, 17.3 e ora Linux Mint 18.x .
Risposta accettata:
Perché succede?
Fondamentalmente, quando accoppi il tuo dispositivo, il tuo servizio Bluetooth genera un set univoco di chiavi di associazione. Innanzitutto, il computer memorizza l'indirizzo MAC e la chiave di associazione del dispositivo Bluetooth. In secondo luogo, il tuo dispositivo Bluetooth memorizza l'indirizzo MAC del tuo computer e la chiave corrispondente. Di solito funziona bene, ma l'indirizzo MAC per la tua porta Bluetooth sarà lo stesso sia su Linux che su Windows (è impostato a livello hardware). Pertanto, quando si riassocia il dispositivo in Windows o Linux e viene generata una nuova chiave, tale chiave sovrascrive la chiave precedentemente memorizzata sul dispositivo Bluetooth. Windows sovrascrive la chiave Linux e viceversa.
Dispositivi Bluetooth LE: Questi possono accoppiarsi in modo diverso. Non ho indagato personalmente, ma questo potrebbe aiutare l'accoppiamento del dispositivo Dual Boot Bluetooth LE (a basso consumo energetico)
Come risolvere
Utilizzando le istruzioni seguenti, accoppieremo prima i tuoi dispositivi Bluetooth con Ubuntu/Linux Mint, quindi accoppieremo Windows. Quindi torneremo nel nostro sistema Linux e copieremo le chiavi di accoppiamento generate da Windows nel nostro sistema Linux.
- Accoppia tutti i dispositivi con Mint/Ubuntu
- Accoppia tutti i dispositivi con Windows
- Copia le chiavi di associazione di Windows in uno dei due modi seguenti:
-
Usa
psexec -s -i regedit.exe
da Windows (più difficile)- Vai su "Dispositivo e stampanti" nel Pannello di controllo e vai alle proprietà del tuo dispositivo Bluetooth. Quindi, nella sezione Bluetooth, puoi trovare l'identificatore univoco. Copialo (ti servirà in seguito).
- Scarica PsExec da http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx.
- Decomprimi lo zip che hai scaricato e apri una finestra di cmd con privilegi elevati. (Fai clic sul menu Start, cerca
cmd
, quindi fai clic con il pulsante destro del mouse sul CMD e fai clic su "Esegui come amministratore".) - cd nella cartella in cui hai decompresso il download.
- Esegui
psexec -s -i regedit.exe
- Naviga per trovare le chiavi in
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesBTHPORTParametersKeys
.
Se non è presenteCurrentControlSet
, provaControlSet001
. - Dovresti vedere alcune etichette di chiavi con gli indirizzi MAC:annota l'indirizzo MAC associato all'identificatore univoco che hai copiato in precedenza.
-
Usa
chntpw
dalla tua distribuzione Linux (più semplice). Inizia in un terminale, quindi:-
sudo apt-get install chntpw
-
Monta l'unità di sistema Windows
-
cd /[WindowsSystemDrive]/Windows/System32/config
-
chntpw -e SYSTEM
apre una console -
Esegui questi comandi in quella console:
> cd CurrentControlSetServicesBTHPORTParametersKeys > # if there is no CurrentControlSet, then try ControlSet001 > # on Windows 7, "services" above is lowercased. > ls # shows you your Bluetooth port's MAC address Node has 1 subkeys and 0 values key name <aa1122334455> > cd aa1122334455 # cd into the folder > ls # lists the existing devices' MAC addresses Node has 0 subkeys and 1 values size type value name [value if type DWORD] 16 REG_BINARY <001f20eb4c9a> > hex 001f20eb4c9a => :00000 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX ...ignore..chars.. # ^ the XXs are the pairing key
-
Prendere nota di quale indirizzo MAC del dispositivo Bluetooth corrisponde a quale chiave di associazione. Quello menta/Ubuntu non avrà bisogno degli spazi intermedi. Ignora il
:00000
.
-
-
- Torna su Linux (se non in Linux) e aggiungi la nostra chiave Windows alle nostre voci di configurazione Linux. Nota solo che l'indirizzo MAC della porta Bluetooth è formattato in modo diverso quando si passa da Windows a Linux, indicato come aa1122334455 in Windows nel mio esempio sopra.
La versione Linux sarà in maiuscolo e punteggiata da ":" dopo ogni due caratteri – ad esempio AA:11:22:33:44:55.
In base alla tua versione di Linux, puoi eseguire una di queste operazioni:- Prima di Mint 18/16.04 potevi fare questo:
-
sudo edit /var/lib/bluetooth/[MAC address of Bluetooth]/linkkeys
– [l'indirizzo MAC di Bluetooth] dovrebbe essere l'unica cartella in quella cartella Bluetooth. -
Questo file dovrebbe assomigliare a questo:
[Bluetooth MAC] [Pairing key] [digits in pin] [0] AA:11:22:33:44:55 XXXXXXXXxxXXxXxXXXXXXxxXXXXXxXxX 5 0 00:1D:D8:3A:33:83 XXXXXXXXxxXXxXxXXXXXXxxXXXXXxXxX 4 0
-
Cambia la chiave di accoppiamento di Linux in quella di Windows, meno gli spazi.
-
- In Mint 18 (e Ubuntu 16.04) potresti dover fare questo:
-
Passa alla radice:
su -
-
cd nella posizione di configurazione Bluetooth
/var/lib/bluetooth/[bth port MAC addresses]
-
Qui troverai le cartelle per ogni dispositivo con cui hai accoppiato. I nomi delle cartelle sono gli indirizzi MAC dei dispositivi Bluetooth e contengono un unico file
info
. In questi file vedrai la chiave di collegamento che devi sostituire con quelle di Windows, in questo modo:[LinkKey] Key=B99999999FFFFFFFFF999999999FFFFF
-
- Prima di Mint 18/16.04 potevi fare questo:
- Una volta aggiornato, riavvia il servizio Bluetooth in uno dei seguenti modi e funziona!
-
Ubuntu, Mint, Arch:
sudo systemctl restart Bluetooth
-
In alternativa, riavvia la macchina in Linux.
-
- Riavvia in Windows:funziona!