仮想USB HIDデバイス

仮想USB HIDデバイス

接続されたUSB HIDデバイスと通信するアプリケーションを開発中です。問題はまだ実際のデバイスがないことです(私たちのチームの他の部分で開発中です)。したがって、これをシミュレートする方法があれば本当に良いです。

私が考える理想的なユーティリティは次のとおりです。ロード時にシステムに2つのデバイスノードを作成するカーネルモジュール。

  • 仮想USB隠しデバイスは、実際のUSB隠しデバイスノードと区別できません。/dev/hidraw0もちろん、このデバイスは私が使用しているすべてのUSB隠しライブラリで見ることができるはずですhidapi
  • サービスデバイスノード、/dev/virtual_hid_1例:

したがって、誰かが書き込むとき、/dev/virtual_hid_1そのデータは文字通り読み取る必要があり、/dev/hidraw0その逆も同様です。

これにより、必要な言語でいくつかのデバッグアプリケーションを作成できますpython/dev/virtual_hid_1開発に非常に便利です。

そんなことありますか?

答え1

おそらくカーネルモジュールを探しているでしょうuhid。バラよりカーネルソースコードのドキュメント:

UHIDを使用すると、ユーザー空間転送ドライバは、ユーザー空間制御バスに接続されている各デバイスに対してカーネル隠しデバイスを作成できます。 UHID API は、カーネルからユーザー空間へ、またはその逆に提供される I/O イベントを定義します。

./samples/uhid/uhid-example.c にサンプルのユーザー空間アプリケーションがあります。

答え2

  1. 開発中のUSBデバイスをエミュレートするための安価でエレガントでオープンなハードウェアソリューションに興味があるかもしれません。マイクロPythonボード。 (私はこのハードウェアとは関係ありません)。

    小規模独立であるPython 3を実行するボード、USBに接続すると、マウスHIDまたはキーボードHIDとして表示されることがあります。 Pythonソースファイルをデバイスにコピーして実行します。美しい概念。

    まあ、それはあなたが望むものに実際には適していません。あなたが望むように正確に表示されるようにするには、SDKをダウンロードしてCでいくつかの作業を行う必要があるかもしれませんが、ほとんどのコードはPythonにあります。 TTLレベルのシリアルポート、i2c、spi、その他のポートがあります。

  2. 代替ソリューションとしてPythonを使用したUSBデバイスボードのシミュレーションところが、完成品を買えるかはわかりませんね。

  3. しかもusbipを使用したUSBエミュレーションまだ見ていない追加のハードウェアはありません。

関連情報