2009-07-15 8 views
0

hidモジュールで特定の変更を行いました。カーネルV 2.6.27.14にinsmodカーネルHIDモジュールを追加してください。

私はそれと負荷(insmodの)作ることができます

それはsucessfully

何差延がないので今、私はカーネルV 2.6.27.11

に同じカーネルモジュールをロードするために喜んでカーネルのバージョン

両方のためのkerbelソースファイルで、私はsucessfullyそれを作ることができますが、私は、この0.11カーネルバージョン

に/ insmodのを追加することはできません**

   ERROR: Module myhid does not exist in /proc/modules 

       insmod: error inserting 'myhid.ko': -1 Invalid module format 

**

よろしく、

+0

詳細を追加できますか?コード、Makefile、どうやってそれを挿入しますか? – hyperboreean

+0

おそらく、.configファイルを試してみてください。 – Inshallah

+0

ここにmakeファイルがあります。 HID.Oのすべての依存元ファイルをダウンロードして名前を変更します。 #MAKEFILE #マルチパートオブジェクト。 OBJ-M:= myhid.o myhid-OBJS:= MY-hiddraw.o myhid-core.o myhid-input.o myhid入力-quirk.o KDIR。 = $(シェルPWD) デフォルト: \t $(MAKE)-C $(KDIR)M = $(PWD)モジュール=/libに/モジュール/ $(シェルのuname -rと)/ PWDを構築 – Madni

答えて

0

は何 "のmodinfo" を参照してください、あなたのモジュールについて説明します:右カーネルにリンクされて、それが適切にコンパイルされますことを

確認し、。コンパイルすると/モジュールをインストール

$ modinfo hid 
filename:  /lib/modules/2.6.27.7/kernel/drivers/hid/hid.ko 
license:  GPL 
depends:   
vermagic:  2.6.27.7 mod_unload 486 
parm:   pb_fnmode:Mode of fn key on Apple keyboards (0 = disabled, 1 = fkeyslast, 2 = fkeysfirst) (int) 

、あなたはinsmodの/ modprobeのを実行する前に、モジュールの依存関係を再構築するために(rootとして)「でdepmod」を実行する必要があることを忘れないでください。

3

他のカーネルバージョン用にコンパイルされたモジュールをロードすることはできません。モジュールのソースコードが変更されていないということは、バイナリが別のカーネルバージョンで同じであるということを意味しません。カーネル内部APIのインタフェース変更は、たとえ直接見えなくても、モジュールを破壊するでしょう...

したがって、カーネルは、別のカーネルバージョン用にビルドされたモジュールの読み込みを禁止することによって安全面にとどまります。あるいは、カーネル構築時にMODVERSIONS設定オプションを設定することもできます。これにより、あなたのモジュールで使われているすべてのシンボルにバージョン情報が埋め込まれ、別のカーネルバージョンに読み込むことができます。

モジュールで使用されているインターフェイスが変更された場合でも、結果は同じになります。

+0

ありがとう!はい、すべてのカーネルバージョンでソースファイルをコンパイルすると機能します。 カーネルを構築するときに、どのようにMODVERSIONS設定オプションを設定できますか?それはMAKEFILEにあるのか、それともすべてのソースファイルにありますか?よろしくお願いします。 – Madni

+0

これは.configで設定され、通常は 'make menuconfig'などを実行して行います。詳細はカーネルソースの 'Documentation/kbuild/modules.txt'を見てください。 – Bluehorn

+0

ありがとうございました!私はまだMODVERSIONSと一緒に働いていますが、それでもまだ良いことはありません。あなたは私にその事例を送ってください。よろしく – Madni

0

ありがとうございました!ここにmakeファイルがあります。私はHID.Oのためのすべての依存のソースファイルをdowloadし、それらに

MAKEFILE

OBJ-mの名前を変更:= myhid.o

myhid-OBJS:=私の-hiddraw.o myhidコアを= $(シェルPWD:

PWD =/libに/モジュール/ $(シェルのuname -rの)/構築:

がKDIR私-HID-入力quirk.o-MY-HID input.o .O )

デフォルト:

$(MAKE) -C $(KDIR) M=$(PWD) modules 
関連する問題