2

こんにちは、USB / Linux の達人です!

Atmel ARM Cortex-A5 CPU に基づく組み込みシステムがあります。高速 USB ポートを USB デバイスとして構成する組み込み Linux カーネル V3.10 を実行します。

USB デバイスは、HID、NDIS イーサネット、および MTP で構成される USB コンポジットとして構成されます。すべてがうまくいっています。

ただし、この組み込みシステムを Windows などのホスト OS にプラグインすると、Windows に新しい MTP デバイスを通知しなければならない状況が発生します。現在、私が知っている唯一の方法は、組み込みシステムから USB ケーブルを物理的に取り外し、再度接続することです。Windows は「新しい」MTP 接続を認識し、デバイス上のファイルを指すフォルダーを開き、すべてがすごい!

プログラムでまったく同じことを行う方法を見つけたいと思います...つまり、イーサネットに「ifconfig」を使用しているかのように、USBデバイスポートをダウンおよびアップします。

USB デバイス ポートの一時停止と再開に使用できるコマンドはありますか?

どうもありがとうございました!

ジャンピエール

PS 私が使用している USB ドライバーは「atmel_usba_udc.c」と呼ばれ、ユーザー空間から呼び出したい「atmel_usba_stop()」や「atmel_usba_start()」などの関数が含まれています。

4

1 に答える 1

1

「atmel_usba_stop()」と「atmel_usba_start()」は、ハードウェア固有の操作にアクセスするために使用される関数ポインターを参照する操作に関連しているようです。ioctl と適切にリンクすることで、ユーザー空間からカーネルに指示するために使用できます。

于 2015-10-02T09:04:55.720 に答える