USBデバイスをエミュレートするためのLinuxモジュールであるUSB Raw Gadgetが利用可能です

Googleのアンドレイ・コノバロフ氏が新しいモジュールを開発中 USBRawガジェット, 許可する ユーザー空間で USB デバイスをエミュレートします。 保留されています アプリケーション このモジュールをメインの Linux カーネルに含めるために。 USB Raw ガジェットはすでにあります 適用された Google では、ツールを使用して USB カーネル スタックのファズ テストを簡素化 シスカラー.

このモジュールは、カーネル サブシステムに新しいプログラミング インターフェイスを追加します。 USBガジェット GadgetFS の代替として開発されています。 新しい API の作成は、ユーザー空間から USB ガジェット サブシステムへの低レベルの直接アクセスを取得し、考えられるすべての USB リクエストを処理できるようにする必要性によって推進されました (GadgetFS は、一部のリクエストをユーザー空間に渡さずに独立して処理します)。 。 USB Raw ガジェットは、GadgetFS の /dev/gadget と同様に、/dev/raw-gadget デバイスを通じて制御されますが、対話には疑似 FS ではなく ioctl() ベースのインターフェイスが使用されます。

ユーザー空間のプロセスによるすべての USB リクエストの直接処理に加え、新しいインターフェイスは、USB リクエストに応じて任意のデータを返す機能も備えています (GadgetFS は USB 記述子の正確性をチェックし、特定のレスポンスをフィルタリングします。これにより、USB リクエストの検出が防止されます) USB スタックのファズ テスト中のエラーの数)。 Raw Gadget では、接続する特定の UDC (USB デバイス コントローラー) デバイスとドライバーを選択することもできます。一方、GadgetFS は最初に使用可能な UDC デバイスに接続します。 予測可能な名前がさまざまな UDC に割り当てられます 終点 XNUMX つのデバイス内でさまざまなタイプのデータ交換チャネルを分離します。

出所: オープンネット.ru

コメントを追加します