小さなARMv7コンピュータボードからキーボードとマウスなしでリモートコンピュータボードにキーボードとマウスイベントを送信したいです。ローカルに実装されたCANバスからこれらのイベントを送信する予定です。コントロールパッドにはタッチスクリーンがあり、タッチパッドとして検出されます。ハードウェアキーボードをサポートする予定がありますが、通常は仮想キーボードのみをサポートします。
コンテキスト:2つのボードは、マルチメディアの取り付け時にマスター/スレーブデバイスに結合する必要があります。マルチメディアプラットフォームが動作するプラットフォーム(通常これに限定されない)コーディ)はスレーブで、キーボードやマウスはありません。 CANバスから入力イベントを受信する必要があります。メインコントロールボードは、スレーブマルチメディアボードの電源を入れたときにキーボードとタッチパッドとして機能する小さなディスプレイにも接続されています。クロス開発ツールチェーンは次のとおりです。Gentoo Linux。
それで、ローカルキーボードとマウス(タッチパッド)イベントをリモートホストに送信する最も直接的な方法があると思います。コア開発者。
たとえば、リモート側でUsedを使用して、netcat
ローカルキーボード/マウスイベント(から)をリモートシステムに送信することを見つけることができます。/dev/input/*
(つまり、私は成功せずに試しました。)
たとえば、私はカーネル入力モジュールの開発に反対していませんが、可能であればユーザースペースアプリケーションを統合したり、必要に応じて開発したほうがよいでしょう。私はまた、XorgやWaylandなどのグラフィックエンジンがリモートボードで実行されていると仮定するよりも、「生」のハードウェアイベントを送信することを好みます。もちろん落胆しない限り。
だから結局私がしなければならないのかと思います。
- ハッキング
lirc
とCANサポートの追加(例:または) - Linux入力ドライバのクラッキング。
もっと簡単な方法があればそうします。
ベストアンサー1
昨日作成しました。入力ブロックツールフレームワーク(gitlab.com/interception)。
インストールは簡単です:
- そこに記載されているいくつかの必須パッケージをインストールしてください(+
pkgconf
)。 - レプリケーションストア
cmake
Readme ファイルで提供されているオプションを使用して実行します。
クイックコンセプト証明:
元のコンピュータ(キーボード付きコンピュータ)から:
src/interception-tools/build/intercept -g /dev/input/by-id/usb-Logitech_USB_Receiver-if02-event-mouse | nc des.ti.nat.ion 9876
ターゲットマシン(イベントを「ルーティング」したいマシン)から:
nc -l -p 9876 | src/interception-tools/build/uinput
ターゲットコンピュータに他の入力ソースがない場合は、キーボード関連の項目をエクスポートする必要がありますyaml
。
uinput -p -d /dev/input/by-id/my-kbd は YAML の my-kbd 機能を出力します。この機能自体は、uinput -c my-kbd.yamlでuinputにフィードバックできます。
これはDebian Bullseyeの間にあります。[Eメール保護]そして[Eメール保護]。
これがうまくいけば、それをシステム起動ファイルに組み込む必要があり、それは自動的にスムーズに行われます。