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/

这是关于 hello world 模块的教程:

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/

一个简单的错误就是忘记了每个目录块后面的THE SPACE /_helloworld/下划线代表一个SPACE

如果您没有该空间,那么无论如何您都会收到上述错误。

只是想我会添加这个以防其他人正在四处寻找回应

于 2013-02-26T23:55:26.617 回答