web-dev-qa-db-ja.com

macOSとUbuntuの両方で同じBluetoothキーボードとマウスを使用するにはどうすればよいですか?

MacOSとUbuntuの両方を搭載したiMacがあります。 OSを切り替えるたびに再ペアリングすることなく、両方のオペレーティングシステムでBluetoothマウスとキーボードを使用できるようにしたいと考えています。

誰かがこの問題を抱えていて、解決策を見つけましたか?

8
tjespe

この質問への回答 一般的なアイデアを提供しますが、macOS側では少しあいまいなので、使用した手順を説明します。

OSバージョンは次のとおりです。ファイル名と場所はバージョンに応じて変更される可能性があるため、これが私にとってうまくいったことです。

  • MacOS High Sierra 10.13.1
  • Ubuntu 17.04

MacOSでは少なくとも読み書き可能で、Ubuntuでは読み取り可能なファイルシステム(USBキーなど)があると仮定しています。

一般的な考え方は、デバイスをOSにペアリングすると、一意のリンクキーが生成されます。これは、ペアリングがアクティブになる次回の認証に必要です。ペアリングが両方のOSで機能するように、これらのリンクキーをMacOSペアリングからUbuntuペアリングに転送できます。

  1. Ubuntuを起動する
  2. 通常どおりデバイスをペアリングします
  3. MacOSを再起動します
  4. 通常どおりデバイスをペアリングします
  5. ターミナルウィンドウでSudo defaults read com.Apple.bluetoothd.plist LinkKeysと入力します。これにより、次のような出力が得られます。
 {
 "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>; 
}; 
} 

ここでa0-99-9b-16-43-d2は、私のシステムのbluetoothアダプターのMACアドレスです。

その後に、ペアにしたデバイスのMACアドレス(00-1f-20-47-e5-22および04-0c-ce-3d-15-4dと、それらのペアに関連付けられたリンクキー(それぞれ4d6b002f 37584c09 ee219365 b78ba03eおよびfe998c62 4bb29a7c 40b2e670 10db71ed)があります。

  1. この出力をMacOSとUbuntuの両方に表示されるファイルにリダイレクトします。
 sudoのデフォルトは、com.Apple.bluetoothd.plist LinkKeys> /Volumes/4T/linkkeys.txt
を読み取ります
  1. スイッチオフペアリングしたすべてのデバイス
  2. Ubuntuを再起動します。 Bluetoothデバイスをまだオンにしないでください。この時点で使用する有線キーボードとマウスがあればいいのですが
  3. ターミナルウィンドウを開く
  4. Bluetoothサービスを停止します。
 SudoサービスのBluetooth停止
  1. ディレクトリ/var/lib/bluetoothを見てください。 A0:99:9B:16:43:D2のような形式のbluetoothアダプターMACアドレスのサブディレクトリエントリが表示されます。その中に、00:1F:20:47:E5:2204:0C:CE:3D:15:4Dのような各デバイスMACアドレスのサブディレクトリが表示されます。これらのディレクトリ内には、infoという名前のファイルがあります。お気に入りのエディターでこれらのファイルを編集します。
 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
  1. これらのファイルには、Keyエントリがあります。このキーは、MacOSで見つけたものと同じにする必要がありますが、いくつかの重要なフォーマットの違いがあります。
    • 削除されたスペース
    • 大文字の16進数
    • バイトスワップされた128ビット整数(つまり、2つの16進数のチャンクに分割され、逆にされます)

これは次のようにして達成できます。

 $ echo 4d6b002f 37584c09 ee219365 b78ba03e | sed 's///g;s/../\U&\n/g' | tac | tr -d '\ n'; echo 
 3EA08BB7659321EE094C58372F006B4D 
 $ echo fe998c62 4bb29a7c 40b2e670 10db71ed | sed 's///g;s/../\U&\n/g' | tac | tr -d '\ n'; echo 
 ED71DB1070E6B2407C9AB24B628C99FE 
 $ 

これらの再フォーマットされたキーを編集して、適切な情報ファイルのキーエントリにします。ほとんどの場合、Sudoが必要です。

  1. Bluetoothサービスを再起動します。
 SudoサービスのBluetooth開始
  1. Bluetoothデバイスの電源を入れます。 MacOSとUbuntuの両方で認識され、ペアリングがアクティブ/有効になっている必要があります。

更新:ペアリングは、MacOSとUbuntuの両方でのアップグレードを通じて持続しているようです。現在、それぞれ10.13.6と18.04を実行していますが、まだこの手順をやり直す必要はありません。

10
Digital Trauma