0

USBホストの大容量ストレージとしてポーズをとるためg_file_storageに、ドライバーとして使用しています。うまくいきました!!embedded linux

今、私はもっとする必要があります.... USBデバイスでイジェクトイベントをキャプチャすることです..これはg_file_storage今まで提供されていなかった機能です。

私はこれを手に入れましfunction fsg_suspend()た...これは、Windows USBホストが.....g_file_storage driverを行うときに呼び出されるルーチンです."Safely remove hardware"

ユーザー空間から監視する機能で/var/log/message 簡単なメッセージを送信するための簡単なprintkを追加することを考えています.....fsg_suspendBeagleBoard

しかし、私は非常に基本的なカーネルプログラミングの疑いに陥っています...助けていただければ....

私は単純なカーネルモジュールを作成しました..これはmodule.c、ファイルと言って、単純なmakeコマンドを使用してコンパイルし、modprobe/insmod挿入してから使用します... これは、完全に私が作成したモジュールに関するものです。

また、カーネルの再コンパイル中に構成ファイルでオプション M としてモジュールを構成しました。次に、make、make modules、make を実行しmodules_installmake_install 次に modprobeその特定の機能を使用します。.pl 間違っている場合は訂正してください....

しかし、ここでは、このモジュールはカーネル モジュールです。

そのメイクファイルを使用して再コンパイルできますか...そしてmodprobeを実行できますか...? しかし、このMakefileはこの考えをサポートしていないようです..

実行中のカーネルに既に存在するこのモジュールのコピーに干渉しますか? または、カーネルを再コンパイルする必要がありますか?

4

1 に答える 1

0

クエリの前半のほとんどがわかりません。質問には Linux とカーネルのタグが付けられているのに、なぜ Windows に関するものが多いのでしょうか?

私の理解が正しければ、既存のデバイス ドライバーを無効にする必要があります。最も簡単な方法は、それなしでカーネルを再構築することです。次に、 コマンドinsmodrmmodコマンドを使用して、新しいドライバーをロードおよびアンロードします。

あなたが提供した詳細からはわかりませんが、新しいドライバーが古いドライバーと共存する方法があるかもしれません。IRQ を必要としない場合、または別のデバイス ノードを使用できる場合は、新しいデバイス ノードを作成し、既存のドライバーとは別に使用できます。

于 2011-03-21T07:09:02.557 に答える