Fedora 26で2つのBluetoothデバイス、マウス、キーボードをペアリングしようとしています。私もWindows 10がインストールされています。私がしたことは次のとおりです。 LinuxとWindowsでペアリングしましたが、Windowsから取得したキーを挿入しようとすると、[LinkKey]
上記の項目が見つかりません。私が従う指示
以下は、デバイスの1つに関する情報ファイルの内容です。
[General]
Name=Designer Mouse
Appearance=0x03c2
AddressType=static
SupportedTechnologies=LE;
Trusted=true
Blocked=false
Services=00001800-0000-1000-8000-00805f9b34fb;00001801-0000-1000-8000-00805f9b34fb;0000180a-0000-1000-8000-00805f9b34fb;0000180f-0000-1000-8000-00805f9b34fb;00001812-0000-1000-8000-00805f9b34fb;
[IdentityResolvingKey]
Key=D8F3A0A146FEB991BF2ECD9756C8BDFA
[LocalSignatureKey]
Key=23AB7AF05C5AC930F9322CF44114856B
Counter=0
Authenticated=false
[LongTermKey]
Key=D2681BEA8B2C177B1AB8786F22C89DBB
Authenticated=0
EncSize=16
EDiv=48309
Rand=10283782112900107958
[DeviceID]
Source=2
Vendor=1118
Product=2053
Version=272
[ConnectionParameters]
MinInterval=6
MaxInterval=6
Latency=60
Timeout=300
ツアーガイドによると、入り口でなければなりませんが、[LinkKey]
入り口はありません。
Windowsでキーを取得し、上記の方法も試しました。この問題
答え1
問題は、お使いのデバイスがBluetooth LE(低エネルギー)デバイスであり、異なる方法で処理されることです。デュアルブート用にMicrosoft 3600マウスを設定するのに役立つ2つのソリューションが見つかりました。
ここでBluetooth LEデバイスを使用してこのタスクを手動で実行する方法のチュートリアルをご覧ください。http://console.systems/2014/09/how-to-pair-low-energy-le-bluetooth.html
主なステップは次のとおりです。
- Linuxの最初のペア
- 再起動
- Windowsでペアリング
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\BTHPORT\Parameters\Keys\{computer-bluetooth-mac}\{device-bluetooth-id}からキー値を取得します。
- SYSTEM\Select で見つけることができる ControlSet001 または ControlSet002 かもしれませんが、通常 ControlSet001 です。
たとえば、chntpw(Linux上)cd {PATH_TO_WINDOWS_PARTITION} / Windows / System32 / config /
chntpw -e SYSTEMを使用してこれを実行できます。- /var/lib/bluetooth/{computer-bluetooth-mac} に移動します。
- 非常に似たデバイスのBluetooth IDのディレクトリを確認してください(再度ペアリングするたびに変更される可能性があるため、通常は若干異なります)。
- デバイスIDと一致するようにディレクトリ名を変更します。
- 名前が変更されたディレクトリ内の情報ファイルを編集します。
- 次の値をコピーします。
IRK
Key
入力するIdentityResolvingKey
CSRK
Key
入力するLocalSignatureKey
LTK
Key
入力するLongTermKey
ERand
intoRand
:16進値を取得します。ab cd ef、バイト逆方向(EF CD ab)これを10進数に変換します(たとえば、電卓アプリのプログラミングモードを使用)。EDIV
intoEDiv
:16進値を取得して正常に変換または表示される場合は、10進値を直接使用します(chntpwが表示する)
- 再起動
または
Mygod が提供する Python スクリプトを使用して、次の手順を実行します。
https://gist.github.com/Mygod/f390aabf53cf1406fc71166a47236ebf
私はスクリプトを使用し、グループのキー項目LongTermKey
とグループの項目をコピーしました。LocalSignatureKey
IdentityResolvingKey
EDiv
Rand
LongTermKey
手動パス接続時の考慮事項
私には実際には効果がなかったので使用しませんでした。しかし、他の人にも効果がない場合は、次の一般的な回避策に従ってください。
- このチュートリアルではこれについて言及していませんが、IRKエントリがある場合はその値を
IdentityResolvingKey
キーにコピーしてください。 - KeyLength を EncSize にコピーしないでください。ただそのままにしておいてください(私の場合は16個)
- デバイス名がまったく同じでない場合は、ディレクトリを移動することを忘れないでください。
- 私の場合は、5番目のセットで各ペアリングを計算します。
このスクリプトの追加のヒントは次のとおりです。
- Linuxで動作します。
- Windowsパーティションをマウントする必要があります。
- コマンドは次のようにする必要があります。
./export-ble-infos.py -s {PATH_TO_WINDOWS_PARTITION}/Windows/System32/config/SYSTEM
- SYSTEM ファイルを別の場所にコピーし、次のコマンドを使用してパスを渡すこともできます。
-s {PATH}
- SYSTEM ファイルを別の場所にコピーし、次のコマンドを使用してパスを渡すこともできます。
- WindowsがLEでないか、少なくともこの形式以外のBluetoothデバイスがあることがわかると、競合が発生します。
答え2
前の回答で説明した方法を試しました(例:チュートリアルに従ってください)。http://console.systems/2014/09/how-to-pair-low-energy-le-bluetooth.html) Windows 10 および Ubuntu 18.04m LTS デュアルブート構成を使用する Surface Book 2 でシームレスに動作するように Surface キーボードを設定します。 私は仕事を持っていません。
まず、Ubuntu 18.04でSurfaceを最大限に活用するには、Jakedayカーネル(https://github.com/jakeday/linux-surface)。第二に、Microsoft Surfaceキーボード(Bluetooth)を使用するには、最新バージョンのbluez(https://medium.com/@overcode/fixing-bluetooth-in-ubuntu-pop-os-18-04-d4b8dbf7ddd6)。
アイデアは、ペアリングの順序を逆にしてUbuntuで認証を無効にしてから、キーをWindows 10レジストリにコピーすることです。
Windows 10でSurfaceキーボードをペアリングします。これにより、デバイスのレジストリキーが生成されます。
Ubuntuで再起動します。
- Ubuntuでキーボードをペアリングし、からキーボードのBluetoothアドレスを取得し、[接続]をクリックして
Settings>Bluetooth
コピーSurface Keyboard
しますAddress
(私のシステムではにありますので、CE:2E:25:B9:D1:0C
これに注意してください!)。 - ターミナルコンソールを開き、root:と入力します
sudo -i
。 info
認証を削除するには、Bluetoothプロファイルを編集してください。キーボード設定ディレクトリを入力してくださいcd /var/lib
。そのディレクトリの内容を一覧表示してBluetooth MACアドレスを取得し、ls
キーボードcd
の設定フォルダに配置します。私のシステムでは、cd /var/lib/bluetooth/B8:31:B5:9A:5D:15/CE:2E:25:B9:D1:0C
最後の数字は3段階のキーボードのBluetoothアドレスです。お気に入りのエディタを使用してinfo
このディレクトリのファイルを開き、フィールドを[LocalSignatureKey]
Authenticated
に変更し、false
フィールド[LongTermKey]
Authenticated
をに変更します0
。info
マイコンピュータのファイルは次のとおりです。
[General] Name=Surface Keyboard Appearance=0x03c1 AddressType=static SupportedTechnologies=LE; Trusted=true Blocked=false Services=00001800-0000-1000-8000-00805f9b34fb;00001801-0000-1000-8000-00805f9b34fb;0000180a-0000-1000-8000-00805f9b34fb;0000180f-0000-1000-8000-00805f9b34fb;00001812-0000-1000-8000-00805f9b34fb;[ConnectionParameters] MinInterval=12 MaxInterval=12 Latency=20 Timeout=200 [DeviceID] Source=2 Vendor=1118 Product=2327 Version=304 [IdentityResolvingKey] Key=BAC8FF051F3EB6014D0B66678C725435 [LocalSignatureKey] Key=C7E1BDA700A3213E12463D801F4B4496 Counter=0 Authenticated=false [LongTermKey] Key=721CEF56A21CFD5CB0BEF8F565F7F5A6 Authenticated=0 EncSize=16 EDiv=44718 Rand=14981484917123435222
- Surfaceキーボードをオフにして(バッテリーを取り外し)、Ubuntuを再起動します。
- 設定> Bluetooth> Surfaceキーボードで接続をオンにして、バッテリーを再挿入します。キーボードが接続され、正しく機能する必要があります。バッテリーを取り外さずに再起動して、キーボードが正しく機能していることを確認してください。
- ファイルを保存/印刷して
info
キーにアクセスし、キーボードのWindows 10レジストリキーを更新します。私の場合は、Windows 10およびUbuntuにインストールされているディスクにファイルを保存しました(Windows 10レジストリにデータをコピー/入力できるように)。 - Surfaceキーボードをオフにして(バッテリーを取り外し)、Windows 10で再起動します。
PSTools's psexec
レジストリの編集に使用されます。まず、PSTools
次からダウンロードしてください。http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx。 zipファイルを解凍し、管理者としてターミナルコンソールを開き、解凍したファイルにディレクトリを変更してから、実行すると、ペアリングキーが保存されている特権レジストリpsexec -s -i regedit.exe
キーにアクセスできます。 - ファイルのキーを
info
Surface キーボードの Windows レジストリキーにコピーします。まず、キーボードの2つの項目の名前を変更する必要があります。航海Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters
。以下の項目Devices
とKeys
Surfaceキーボードに対応する項目の名前を変更します。キーボードがペアリングされるたびに、前のペアリングと区別するためにアドレスが少しずつ変更されます。私の場合、初期のWindows 10ペアリングがオンになっており、その後のce2e25b810c
UbuntuペアリングもオンになっていましたCE:2E:25:B9:D1:0C
(小文字のandを除いてほぼ同じアドレスですが、:
toが増えたことに注意してください)。元のWindows 10ペアリングアドレスに対応するレジストリ名を右クリックし、名前をUbuntuアドレスに変更します。b8
B9
レジストリキーの名前を変更した後、私のシステムでは次のように表示されます。
info
ファイルのキーをKeys/{MAC Address}/{Bluetooth Address}
レジストリキー(\Keys\b831b59a5d15\ce2e25b9d10c
例では)にコピーします。まず、フィールドを右クリックして、BluetoothアドレスをUbuntuでペアリングするために使用されたアドレスに更新します(例では、元のWindows 10の「ce2e25b810c」とUbuntuの「ce2e25b910c」が16進数でペアリングされています)Modify
。Address
同様にModify
、次の各レジストリフィールドは、info
Ubuntuファイルのデータを対応するWindows 10レジストリフィールドにコピー/キー指定します。
IdentityResolvingKey
Key
値はIRK
レジストリフィールドに入ります。変更時には、hexエントリを削除し、手順8)で保存したファイルKey
からhex形式で入力します。info
LocalSignatureKey
Key
値を入力CSRK
LongTermKey
Key
入力するLTK
Rand
Enter:DECIMAL形式ERand
でファイルのデータを入力します。info
EDiv
EnterEDiv
:DECIMAL形式でデータを入力します。
info
12.ファイルの間隔、遅延、およびタイムアウト値をDevice
レジストリキーにコピーします(すべてDECIMAL形式)。
MaxInterval
入力するLERemoteConnParamsIntervalMax
MinInterval
入力するLERemoteConnParamsIntervalMin
Latency
入力するLERemoteConnParamsLatency
Timeout
入力するLERemoteConnParamsLSTO
- Windowsを再起動し、Windows Bluetoothサービスに接続されているSurfaceキーボードにバッテリーを再挿入します。キーボードを再ペアリングせずに、Windows 10からUbuntu 18.04またはその逆にスムーズに起動できる必要があります。