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システムにコピーします。
- すべてのデバイスをMint/Ubuntuとペアリング
- すべてのデバイスをWindowsとペアリング
- 次の 2 つの方法のいずれかで Windows ペアリング キーをコピーします。
psexec -s -i regedit.exe
Windowsで使用してください(難しい)。psexec
この値を表示するには、十分な権限がない一般的なregeditが必要です。- コントロールパネルの「デバイスとプリンタ」に移動し、Bluetoothデバイスのプロパティに移動します。その後、Bluetoothセクションで一意の識別子を見つけることができます。コピーしてください(後で必要です)。メモ:最新バージョンのWindowsでは、設定 - > Bluetoothとデバイス - >デバイス - >を介してデバイスのプロパティにアクセスします。追加のデバイスとプリンタの設定
- 以下からPsExecをダウンロードしてください。http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx。
- ダウンロードしたzipを解凍し、高い権限でcmdウィンドウを開きます。 (スタートメニューをクリックして検索し、
cmd
CMDを右クリックして[管理者として実行]をクリックします。) - ダウンロードして解凍したフォルダにcdを入れます。
- 走る
psexec -s -i regedit.exe
- キーを見つけるにはナビゲーションしてください
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys
。そうでない場合はCurrentControlSet
試してくださいControlSet001
。 - MACアドレスを含むいくつかのキーラベルを表示する必要があります。以前にコピーした一意の識別子に関連付けられたMACアドレスを書き留めます。メモ:もしあれば見えない鍵ペアリング後は、次のものが必要になる場合があります。読み取り権限の追加(マウスの右ボタンをクリック - >権限)
Keys\
- 便宜上、テキストファイルにエクスポートします。ファイル - >エクスポート - >テキストをクリックし、共有パーティション/クラウドに保存します。
Linuxディストリビューションで使用してください
chntpw
(簡単)その後、端末から始めます。sudo apt-get install chntpw
読み書きモードで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
- 別のドライブを試してみるか、またはこれらの指示をすべて完了した後
- 使用するドライブを見つけます
cd /[WindowsSystemDrive]/Windows/System32/config
- Windows 10の場合、ルートフォルダは「Windows」、Windows 7の場合はルートフォルダは「WINDOWS」です。
chntpw -e SYSTEM
コンソールを開くコンソールで次のコマンドを実行します。
> # 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
どのBluetoothデバイスMACアドレスがどのペアリングキーと一致するかを確認してください。 Mint / Ubuntuは途中でスペースを必要としません。無視する
:00000
。
- Linuxに戻り(まだLinuxを使用していない場合)、Linux構成エントリにWindowsキーを追加します。 WindowsからLinuxに移行する場合、BluetoothポートのMACアドレス形式が異なります。上記の例では、Windowsではaa1122334455と呼ばれています。 Linuxのバージョンはすべて大文字で、2文字ごとに「:」が表示されます(例:AA:11:22:33:44:55)。 Linuxのバージョンによっては、次のいずれかを実行できます。
- プリミント 18/16.04次のことができます。
sudo edit /var/lib/bluetooth/[MAC address of Bluetooth]/linkkeys
- [BluetoothのMACアドレス]は、対応するBluetoothフォルダ内の唯一のフォルダである必要があります。ファイルは次のようにする必要があります。
[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
Linuxペアリングキーを空白以外のWindowsペアリングキーに変更します。
- Mint 18(およびUbuntu 16.04)以降以下を行う必要があります。
ルートに切り替える:(
sudo -i
以前のバージョンのUbuntuでは「su -」)Bluetooth設定の場所にCDを移動します。
/var/lib/bluetooth/[bth port MAC addresses]
ここでは、ペアリングした各デバイスのフォルダを見つけることができます。フォルダ名はBluetoothデバイスのMACアドレスで、単一のファイルが含まれています
info
。このファイルには、次のようにWindowsのリンクキーで置き換える必要があるリンクキーが表示されます。[LinkKey] Key=B99999999FFFFFFFFF999999999FFFFF
- プリミント 18/16.04次のことができます。
- いったん更新されると、Bluetoothサービスを再起動してください次のいずれかの方法を使用できます。
Ubuntu、ミント、アーチ:
sudo systemctl restart bluetooth
または、コンピュータをLinuxで再起動します。
- Windowsで再起動すると動作します!
答え2
[linkKey]
まず、多くの答えがファイルセクションのキー交換を提案します/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/info
。このセクションは今呼び出されているようです[LongTermKey]
。そして、[LocalSignatureKey]
今はそうです[IdentityResolvingKey]
。一部の回答では、キーの変更のみを言及して[linkKey]
いますが、キーだけでなく、項目Enc
もEdiv
必要です。Rand
[IdentityResolvingKey]
第2に、装置のMACアドレスが一定でない場合がある。私が使用しているロジクールG604の場合、ペアリングするたびに1ずつ増えます。更新しましたこれらスクリプトこここの問題を解決するために。
指示する
- Linuxで起動し、Bluetoothデバイスをペアリングします。新しく作成された合計が必要です
info
。attributes
/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/<DEVICE_MAC_ADDRESS>/
- Windowsで再起動し、Bluetoothデバイスをペアリングします。
- ダウンロードプログラムの実行次に、管理者モードで実行されるコマンドプロンプトで次のコマンドを実行します。
PsExec64.exe -s -i regedit /e C:\BTKeys.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys
C:\BTKeys.reg
ファイルをUSBフラッシュドライブにコピーします(C:
Linuxオペレーティングシステムでファイルにアクセスできる場合は、ドライブに残してください)。- Bluetoothデバイスの電源を切り、Linuxで再起動します。 Linux でデバイスを再ペアリングしないでください。新しいMACアドレスが作成され、Windowsペアリングが中断される可能性があります。 (これが正常かどうかはわかりませんが、Logitech G604で発生します。)
- ファイルを
BTKeys.reg
Linuxファイルシステムにコピーします。 clean_reg_file.py --file_path BTKeys.reg --output clean.reg
ファイルをクリーンアップするには、実行します(エンコードをUTF8に変換して引用符を削除します)。- ランニング
bluetooth_fix.py --reg_path clean.reg
。 - がある端末からに
sudo
移動します/var/lib/bluetooth/<ADAPTOR_MAC_ADDRESS>/
。 - デバイスのmacアドレスに対応する新しいディレクトリを作成します
BTKeys.reg
。 info
attributes
古いMacアドレスディレクトリから新しいディレクトリにコピーします。/var/lib/bluetooth/<ADAPTOR_MAC>/<NEW_DEVICE_MAC>/info
ステップ8の出力に基づいて値を開き、変更します。- Bluetoothの再起動を使用してください
sudo systemctl restart bluetooth
。