WindowsおよびLinux Mint / Ubuntuデュアルブート時にBluetoothペアリング - デバイスをペアリングする必要はありません。

WindowsおよびLinux Mint / Ubuntuデュアルブート時にBluetoothペアリング - デバイスをペアリングする必要はありません。

WindowsとLinux Mint / Ubuntuをデュアルブートするときは、Bluetoothデバイスを引き続き再ペアリングする必要があるかもしれません。オペレーティングシステムを切り替えるたびにこれが発生します。

今、これが起こらないようにするにはどうすればよいですか?

私はテストし、ガイドを通して私の質問に答えています。

  • Ubuntu 14.4
  • Ubuntu 20.04
  • Ubuntu 22.10
  • Linux Mint 17.X
  • Linux Mint 18.X
  • Linux Mint 21.X
  • Fedora 25

Windows側では、7、10、11で動作します。

答え1

なぜこれが起こるのですか?

デフォルトでは、デバイスをペアリングすると、Bluetoothサービスは一意のペアリングキーセットを生成します。まず、コンピュータはBluetoothデバイスのMACアドレスとペアリングキーを保存します。第二に、BluetoothデバイスはコンピュータのMACアドレスと一致するキーを保存します。これは通常うまく機能しますが、BluetoothポートのMACアドレスはLinuxとWindowsの両方で同じです(ハードウェアレベルで設定されています)。したがって、WindowsまたはLinuxでデバイスを再ペアリングして新しいキーを生成すると、そのキーはBluetoothデバイスに以前に保存されたキーを上書きします。 WindowsはLinuxキーを上書きし、その逆も同様です。

Bluetooth LEデバイス:これらはさまざまな方法でペアリングできます。直接見たことはありませんが、役に立つかもしれません。デュアルブートBluetooth LE(低エネルギー)デバイスのペアリング

修正する方法

以下の手順に従って、BluetoothデバイスをUbuntu / Linux Mintと最初にペアリングしてから、Windowsとペアリングします。その後、Linuxシステムに戻り、Windowsで生成されたペアリングキーをLinuxシステムにコピーします。

  1. すべてのデバイスをMint/Ubuntuとペアリング
  2. すべてのデバイスをWindowsとペアリング
  3. 次の 2 つの方法のいずれかで Windows ペアリング キーをコピーします。
    • psexec -s -i regedit.exeWindowsで使用してください(難しい)。psexecこの値を表示するには、十分な権限がない一般的なregeditが必要です。

      1. コントロールパネルの「デバイスとプリンタ」に移動し、Bluetoothデバイスのプロパティに移動します。その後、Bluetoothセクションで一意の識別子を見つけることができます。コピーしてください(後で必要です)。メモ:最新バージョンのWindowsでは、設定 - > Bluetoothとデバイス - >デバイス - >を介してデバイスのプロパティにアクセスします。追加のデバイスとプリンタの設定
      2. 以下からPsExecをダウンロードしてください。http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
      3. ダウンロードしたzipを解凍し、高い権限でcmdウィンドウを開きます。 (スタートメニューをクリックして検索し、cmdCMDを右クリックして[管理者として実行]をクリックします。)
      4. ダウンロードして解凍したフォルダにcdを入れます。
      5. 走るpsexec -s -i regedit.exe
      6. キーを見つけるにはナビゲーションしてくださいHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys。そうでない場合はCurrentControlSet試してくださいControlSet001
      7. MACアドレスを含むいくつかのキーラベルを表示する必要があります。以前にコピーした一意の識別子に関連付けられたMACアドレスを書き留めます。メモ:もしあれば見えない鍵ペアリング後は、次のものが必要になる場合があります。読み取り権限の追加(マウスの右ボタンをクリック - >権限)Keys\
      8. 便宜上、テキストファイルにエクスポートします。ファイル - >エクスポート - >テキストをクリックし、共有パーティション/クラウドに保存します。
    • Linuxディストリビューションで使用してくださいchntpw(簡単)その後、端末から始めます。

      1. sudo apt-get install chntpw

      2. 読み書きモードでWindowsシステムドライブをマウントする

        • 使用するドライブを見つけますsudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL。デュアルブートの設定方法に応じて、これは通常ntfsドライブの最初のパーティションです/boot/efi。参考にしてくださいNAME
        • sudo mkdir /mnt/c
        • sudo mount --read-only /dev/<NAME> /mnt/c
        • ドライブを安全にマウント解除sudo umount /mnt/c
          • 別のドライブを試してみるか、またはこれらの指示をすべて完了した後
      3. cd /[WindowsSystemDrive]/Windows/System32/config

        • Windows 10の場合、ルートフォルダは「Windows」、Windows 7の場合はルートフォルダは「WINDOWS」です。
      4. chntpw -e SYSTEMコンソールを開く

      5. コンソールで次のコマンドを実行します。

        > # If there is no ControlSet001, then try CurrentControlSet
        > # on Windows 7, "services" below is lowercased.
        > cd ControlSet001\Services\BTHPORT\Parameters\Keys
        > 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>
        > # Get the value of the REG_BINARY entry
        > 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
        
      6. どのBluetoothデバイスMACアドレスがどのペアリングキーと一致するかを確認してください。 Mint / Ubuntuは途中でスペースを必要としません。無視する:00000

  4. Linuxに戻り(まだLinuxを使用していない場合)、Linux構成エントリにWindowsキーを追加します。 WindowsからLinuxに移行する場合、BluetoothポートのMACアドレス形式が異なります。上記の例では、Windowsではaa1122334455と呼ばれています。 Linuxのバージョンはすべて大文字で、2文字ごとに「:」が表示されます(例:AA:11:22:33:44:55)。 Linuxのバージョンによっては、次のいずれかを実行できます。
    • プリミント 18/16.04次のことができます。
      1. sudo edit /var/lib/bluetooth/[MAC address of Bluetooth]/linkkeys- [BluetoothのMACアドレス]は、対応するBluetoothフォルダ内の唯一のフォルダである必要があります。

      2. ファイルは次のようにする必要があります。

        [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
        
      3. Linuxペアリングキーを空白以外のWindowsペアリングキーに変更します。

    • Mint 18(およびUbuntu 16.04)以降以下を行う必要があります。
      1. ルートに切り替える:(sudo -i以前のバージョンのUbuntuでは「su -」)

      2. Bluetooth設定の場所にCDを移動します。/var/lib/bluetooth/[bth port MAC addresses]

      3. ここでは、ペアリングした各デバイスのフォルダを見つけることができます。フォルダ名はBluetoothデバイスのMACアドレスで、単一のファイルが含まれていますinfo。このファイルには、次のようにWindowsのリンクキーで置き換える必要があるリンクキーが表示されます。

        [LinkKey]
        Key=B99999999FFFFFFFFF999999999FFFFF
        
  5. いったん更新されると、Bluetoothサービスを再起動してください次のいずれかの方法を使用できます。
    • Ubuntu、ミント、アーチ:

      sudo systemctl restart bluetooth 
      
    • または、コンピュータをLinuxで再起動します。

  6. Windowsで再起動すると動作します!

答え2

[linkKey]まず、多くの答えがファイルセクションのキー交換を提案します/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/info。このセクションは今呼び出されているようです[LongTermKey]。そして、[LocalSignatureKey]今はそうです[IdentityResolvingKey]。一部の回答では、キーの変更のみを言及して[linkKey]いますが、キーだけでなく、項目EncEdiv必要です。Rand[IdentityResolvingKey]

第2に、装置のMACアドレスが一定でない場合がある。私が使用しているロジクールG604の場合、ペアリングするたびに1ずつ増えます。更新しましたこれらスクリプトこここの問題を解決するために。

指示する

  1. Linuxで起動し、Bluetoothデバイスをペアリングします。新しく作成された合計が必要ですinfoattributes/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/
  2. Windowsで再起動し、Bluetoothデバイスをペアリングします。
  3. ダウンロードプログラムの実行次に、管理者モードで実行されるコマンドプロンプトで次のコマンドを実行します。
PsExec64.exe -s -i regedit /e C:\BTKeys.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys
  1. C:\BTKeys.regファイルをUSBフラッシュドライブにコピーします(C:Linuxオペレーティングシステムでファイルにアクセスできる場合は、ドライブに残してください)。
  2. Bluetoothデバイスの電源を切り、Linuxで再起動します。 Linux でデバイスを再ペアリングしないでください。新しいMACアドレスが作成され、Windowsペアリングが中断される可能性があります。 (これが正常かどうかはわかりませんが、Logitech G604で発生します。)
  3. ファイルをBTKeys.regLinuxファイルシステムにコピーします。
  4. clean_reg_file.py --file_path BTKeys.reg --output clean.regファイルをクリーンアップするには、実行します(エンコードをUTF8に変換して引用符を削除します)。
  5. ランニングbluetooth_fix.py --reg_path clean.reg
  6. がある端末からにsudo移動します/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/
  7. デバイスのmacアドレスに対応する新しいディレクトリを作成しますBTKeys.reg
  8. infoattributes古いMacアドレスディレクトリから新しいディレクトリにコピーします。
  9. /var/lib/bluetooth/<ADAPTOR_MAC>/<NEW_DEVICE_MAC>/infoステップ8の出力に基づいて値を開き、変更します。
  10. Bluetoothの再起動を使用してくださいsudo systemctl restart bluetooth

関連情報