Fedora 26で、2つのBluetoothデバイス、マウスとキーボードをペアリングしようとしています。Windows10もインストールしています。私がしたこと:LinuxとWindowsでペアにしましたが、Windowsから取得したキーを挿入しようとしたときに、ガイドに記載されているエントリ[LinkKey]
が見つかりませんでした 私がフォローしました
これは、デバイスのいずれかの情報ファイルにあるものです。
[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からキーを取得しており、 この質問に記載されている方法も試しました
問題は、デバイスがBluetooth LE(低エネルギー)デバイスであり、処理方法が異なることです。 Microsoft 3600マウスをデュアルブート用に設定するのに役立つ次の2つのソリューションが見つかりました。
Bluetooth LEデバイスで手動で行う方法のチュートリアルについては、こちらを確認してください。 http://console.systems/2014/09/how-to-pair-low-energy-le-bluetooth.html
主な手順は次のとおりです:
IRK
をKey
のIdentityResolvingKey
にCSRK
をKey
のLocalSignatureKey
にLTK
をKey
のLongTermKey
にERand
をRand
に:16進値ab cd efを取り、バイト反転(ef cd ab)し、それを10進数(例:電卓アプリケーションのプログラミングモードを使用)EDIV
からEDiv
へ:16進値を取得して通常どおり変換するか、10進値が表示されている場合はそれを直接使用します(chntpwが表示します)。または
これを使用pythonこれらの手順を実行するMygodのスクリプト: https://Gist.github.com/Mygod/f390aabf53cf1406fc71166a47236ebf
スクリプトを使用して、LongTermKey
グループのLocalSignatureKey
、IdentityResolvingKey
とEDiv
、およびRand
とLongTermKey
のグループのキーエントリをコピーしました。
リンクされた手動ルートに関する注意事項
実際には機能しなかったため、使用しませんでしたが、機能しなかった場合の一般的な修正は、他の人には機能しました:
IdentityResolvingKey
キーにコピーします。スクリプトの追加のヘルプ:
./export-ble-infos.py -s {PATH_TO_WINDOWS_PARTITION}/Windows/System32/config/SYSTEM
-s {PATH}
でパスを渡すこともできます私は前の回答で説明されている方法を試しました(つまり、 のチュートリアルに従います)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で再起動します。
Settings>Bluetooth
からキーボードのBluetoothアドレスを取得し、接続されているSurface Keyboard
をクリックしてAddress
をコピーします(私のシステムではCE:2E:25:B9:D1:0C
にあります。これを保持してください)念頭に置いて!)。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
info
ファイルを保存/印刷して、キーボードのWindows 10レジストリエントリを更新するためのキーにアクセスします。私の場合、Windows 10とUbuntuの両方にマウントされているディスクにファイルを保存しました(Windows 10レジストリにデータをコピー/入力できるようにするため)。PSTools's psexec
を使用します。まず、 http://technet.Microsoft.com/en-us/sysinternals/bb897553.aspx からPSTools
をダウンロードします。 Zipファイルを抽出し、管理者特権でターミナルコンソールを開き、抽出したファイルにディレクトリを変更してpsexec -s -i regedit.exe
を実行します。これにより、ペアリングキーが格納されている特権レジストリエントリにアクセスできます。info
ファイルからSurfaceキーボードのWindowsレジストリエントリにコピーします。まず、キーボードの2つのエントリの名前を変更する必要があります。 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters
に移動します。 Surfaceキーボードに対応するDevices
およびKeys
の下のエントリの名前を変更します。キーボードをペアリングするたびに、アドレスはわずかに変化して、以前のペアリングと区別されます。私の場合、最初のWindows 10のペアリングはce2e25b810c
でしたが、その後のUbuntuのペアリングはCE:2E:25:B9:D1:0C
でした(:
を除いてほとんど同じアドレスで、小文字の文字が含まれていますが、増加に注意してください。 b8
からB9
まで)。元のWindows 10ペアリングアドレスに対応するレジストリ名を右クリックして、Ubuntuアドレスに名前を変更します。レジストリエントリの名前を変更した後、私のシステムでは次のようになりました:
info
ファイルからKeys/{MAC Address}/{Bluetooth Address}
レジストリエントリ(この例では\Keys\b831b59a5d15\ce2e25b9d10c
)にコピーします。まず、Modify
the Address
フィールドを右クリックして、BluetoothアドレスをUbuntuでペアリングするために使用されているアドレスに更新します(元のWindows 10のペアリングで 'ce2e25b810c'のHEXでは '私の例ではUbuntuのce2e25b910c ')。同様に、Modify
次の各レジストリフィールドは、Ubuntu info
ファイルから対応するWindows 10レジストリフィールドにデータをコピー/入力します。
IdentityResolvingKey
Key
値はIRK
レジストリフィールドに入力されます。変更する場合は、HEXエントリを消去し、手順8)で保存したKey
ファイルからinfo
をHEXADECIMAL形式で入力します。
LocalSignatureKey
Key
値はCSRK
に入ります
LongTermKey
Key
はLTK
に入ります
Rand
はERand
に入ります:info
ファイルのデータをDECIMAL形式で入力します
EDiv
はEDiv
に入ります:データをDECIMAL形式で入力します。
12.Interval、Latency、およびTimeoutの値をinfo
ファイルからDevice
レジストリエントリにコピーします(すべてDECIMAL形式)。
MaxInterval
はLERemoteConnParamsIntervalMax
に入ります
MinInterval
はLERemoteConnParamsIntervalMin
に入ります
Latency
はLERemoteConnParamsLatency
に入ります
Timeout
はLERemoteConnParamsLSTO
に入ります