0

新しいカーネルを構築し、その構築されたカーネルに新しいシステムコールを追加しようとしています。新しいシステムコールを作成した後、「make」コマンドを使用して再コンパイルしようとすると、このエラーが発生します。

scripts/Makefile.build:44: /usr/src/linux-3.0.42/block/helloworld/Makefile: No such file or directory
make[1]: *** No rule to make target `/usr/src/linux-3.0.42/block/helloworld/Makefile'.  Stop.
make: *** [block/helloworld] Error 2

誰かがこれで私を助けることができれば私は感謝するでしょう:)

4

2 に答える 2

3

カーネルモジュールは、おそらくあなたが慣れているものとは異なるバージョンのmakeを使用します。それは物事を大幅に単純化しますが、最初は少し混乱する可能性があります。カーネルメーカーのドキュメントは次のとおりです:http://lwn.net/Articles/21835/

helloworldモジュールのチュートリアルは次のとおりです。

cコード:http ://tldp.org/LDP/lkmpg/2.6/html/x121.html

対応するmakefile:http ://tldp.org/LDP/lkmpg/2.6/html/x181.html

于 2012-09-08T03:18:00.807 に答える
1

古い投稿を取り戻さないでください、しかし私は同様の問題を抱えていました、そして私は誰もこれを提案しなかったことに驚いています。

linux3-xx/Makefileを編集する場合

次の行を変更して、ディレクトリを含めます。

core-y + = kernel / mm / fs / ipc / security / crypto / block /

core-y + = kernel / mm / fs / ipc / security / crypto / block / helloworld /

単純な間違いは、各ディレクトリブロックの後にスペースを忘れることです/_helloworld/アンダースコアはスペースを表します

そのスペースがない場合は、何があっても上記のエラーが発生します。

他の人が応答を探している場合に備えて、これを追加すると思いました

于 2013-02-26T23:55:26.617 に答える