Googleのアンドレイ・コノバロフ氏が新しいモジュールを開発中 , ユーザー空間で USB デバイスをエミュレートします。 保留されています このモジュールをメインカーネルに含める LinuxUSB Raw Gadgetはすでに Google では、ツールを使用して 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
