Las respuestas a esta pregunta le dan la idea general, aunque un poco vaga en el lado de macOS, por lo que explicaré el procedimiento que utilicé.
Las versiones del sistema operativo de la siguiente manera. Los nombres y las ubicaciones de los archivos parecen estar sujetos a cambios según las versiones, por lo que esto es lo que funcionó para mí.
- MacOS High Sierra 10.13.1
- Ubuntu 17.04
Supongo que tiene un sistema de archivos (llave USB o lo que sea) que es al menos lectura-escritura en MacOS y legible en Ubuntu.
La idea general es que cuando empareja un dispositivo con un sistema operativo, se genera una clave de enlace única, que es necesaria para la autenticación la próxima vez que el emparejamiento esté activo. Puede transferir estas claves de enlace de los emparejamientos de MacOS a los emparejamientos de Ubuntu para que funcionen en ambos sistemas operativos.
- Arrancar Ubuntu
- Empareje los dispositivos como de costumbre
- Reiniciar en MacOS
- Empareje los dispositivos como de costumbre
- En una ventana de terminal:
sudo defaults read com.apple.bluetoothd.plist LinkKeys
. Esto le dará resultados como:
{
"a0-99-9b-16-43-d2" = {
"00-1f-20-47-e5-22" = <4d6b002f 37584c09 ee219365 b78ba03e>;
"04-0c-ce-3d-15-4d" = <fe998c62 4bb29a7c 40b2e670 10db71ed>;
};
}
Aquí a0-99-9b-16-43-d2
está la dirección MAC del adaptador bluetooth en mi sistema.
Siguientes que son las direcciones MAC de los dispositivos que he pareadas ( 00-1f-20-47-e5-22
y 04-0c-ce-3d-15-4d
, y las claves de enlace asociados con esas parejas ( 4d6b002f 37584c09 ee219365 b78ba03e
y fe998c62 4bb29a7c 40b2e670 10db71ed
respectivamente).
- Redireccione esta salida a un archivo visible tanto para MacOS como para Ubuntu:
sudo por defecto lee com.apple.bluetoothd.plist LinkKeys> /Volumes/4T/linkkeys.txt
- Apague todos los dispositivos que haya emparejado
- Reiniciar en Ubuntu. No encienda sus dispositivos bluetooth todavía. Espero que tengas un teclado y un mouse con cable para usar en este momento
- Abrir una ventana de terminal
- Detenga el servicio de bluetooth:
servicio de sudo bluetooth stop
- Mira en el directorio
/var/lib/bluetooth
. Debería ver una entrada de subdirectorio para la dirección MAC del adaptador bluetooth, formateada como A0:99:9B:16:43:D2
. Dentro de eso debería ver subdirectorios para cada dirección MAC del dispositivo, como 00:1F:20:47:E5:22
y 04:0C:CE:3D:15:4D
. Dentro de esos directorios encontrará archivos con nombre info
. Edite estos archivos con su editor favorito:
sudo gedit / var / lib / bluetooth / A0: 99: 9B: 16: 43: D2 / 00: 1F: 20: 47: E5: 22 / info
sudo gedit / var / lib / bluetooth / A0: 99: 9B: 16: 43: D2 / 04: 0C: CE: 3D: 15: 4D / info
- En estos archivos encontrarás una
Key
entrada. Esta clave debe ser igual a la que encontró en MacOS, pero con algunas diferencias de formato importantes:
- espacios eliminados
- dígitos hexadecimales en mayúsculas
- entero de 128 bits con intercambio de bytes (es decir, dividido en dos fragmentos de dígitos hexadecimales e invertido)
Puede lograr esto de la siguiente manera:
$ echo 4d6b002f 37584c09 ee219365 b78ba03e | sed 's / //g;s/../\U&\n/g' | tac | tr -d '\ n'; eco
3EA08BB7659321EE094C58372F006B4D
$ echo fe998c62 4bb29a7c 40b2e670 10db71ed | sed 's / //g;s/../\U&\n/g' | tac | tr -d '\ n'; eco
ED71DB1070E6B2407C9AB24B628C99FE
PS
Edite estas claves reformateadas en la entrada Clave de los archivos de información apropiados. Lo más probable sudo
será requerido.
- Reinicie el servicio bluetooth:
servicio de sudo bluetooth start
- Ahora encienda sus dispositivos bluetooth. Deben ser reconocidos y los emparejamientos activos / válidos tanto en MacOS como en Ubuntu.
Actualización: los emparejamientos parecen haber persistido a través de actualizaciones tanto en MacOS como en Ubuntu. Ahora estoy ejecutando 10.13.6 y 18.04 respectivamente y aún no he tenido que rehacer este procedimiento.