LinuxはBluetoothキーボードのデータをどのように処理しますか? (どのようにキーストロークになりますか?)

LinuxはBluetoothキーボードのデータをどのように処理しますか? (どのようにキーストロークになりますか?)

私のBluetoothキーボードが機能せず(詳細については後述)、原因をデバッグしようとしています。

これまで私がしたこと:

  • 以下を使用してデバイスを接続します。bluetoothctl
  • /var/lib/bluetooth/{adapter_MAC}/{keyboard_MAC}私が気づいた後Class=0x000540。私はこれを確認しましたhttps://www.question-defense.com/tools/class-of-device-bluetooth-cod-list-in-binary-and-hexそれが実際にKeyboardクラスであることがわかりました。
  • これを実行しましたが、btmonキーボードからデータが入力されていることがわかります(下記の例を参照)。

何が問題なのか:

  • キーボードのキーを押してもテキストボックスに出力はありません(下記を除く)。
  • キーボードのキーを押すと、次のようになります。btmon
  • 時々(これを再現するのに少し難しいことがありましたが、Bluetoothキーボードをしばらくアイドル状態にすることに関連しているようです)、最初に押すキーが選択され、テキストボックス/ターミナルに入力され続けます。たとえば、と入力すると、abc有線aaaaaaaaaaaaaaaaaaaキーボードのキーを押すまで端末が入力され続けることがあります。

btmonに入力すると、次のabc6つのメッセージが表示されます。

a1 01 00 00 04 00 00 00 00 00  # a
a1 01 00 00 00 00 00 00 00 00  # keyup
a1 01 00 00 05 00 00 00 00 00  # b 
a1 01 00 00 00 00 00 00 00 00  # keyup
a1 01 00 00 06 00 00 00 00 00  # c
a1 01 00 00 00 00 00 00 00 00  # keyup

私の質問は次のとおりですLinuxはこのデータをどのように処理し、それをキーストロークに変換しますか?次は何をしますか?この問題を処理するドライバはどこにありますか?

これはFedoraベースのディストリビューションです。

ベストアンサー1

私の場合、Bluetoothキーボード(AnnePro2 P1、made in China)は、ホストデバイスからわずか数cm離れた場所でも動作するように設計されたハイブリッドキーボードのようです。つまり、これは前のノートブックシナリオにのみ適用されます。

私の質問は次のとおりです

  1. キーボードがランダムに切断された
  2. 時には、キーボードが「接続」してもキーが機能しないことがあります。
  3. 説明と同様に、キーストロークが繰り返し送信されることがあります。

タワー型コンピュータを使用しなければならなかったので、USB延長ケーブルを使ってBluetoothペンダントをBluetoothキーボードから手のひらの長さほど離れたところに配置したところ、両方の問題が消えました。

質問のタイトルを変更してください。現在のタイトルはあなたの診断であり、これは間違っているかもしれません。これはあなたの問題です(たとえば、「Bluetoothキーボードが応答しないか、文字を繰り返し出力します」)。

おすすめ記事