接続された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
開発中のUSBデバイスをエミュレートするための安価でエレガントでオープンなハードウェアソリューションに興味があるかもしれません。マイクロPythonボード。 (私はこのハードウェアとは関係ありません)。
小規模独立であるPython 3を実行するボード、USBに接続すると、マウスHIDまたはキーボードHIDとして表示されることがあります。 Pythonソースファイルをデバイスにコピーして実行します。美しい概念。
まあ、それはあなたが望むものに実際には適していません。あなたが望むように正確に表示されるようにするには、SDKをダウンロードしてCでいくつかの作業を行う必要があるかもしれませんが、ほとんどのコードはPythonにあります。 TTLレベルのシリアルポート、i2c、spi、その他のポートがあります。
代替ソリューションとしてPythonを使用したUSBデバイスボードのシミュレーションところが、完成品を買えるかはわかりませんね。
しかもusbipを使用したUSBエミュレーションまだ見ていない追加のハードウェアはありません。