编写内核模块问题,不能生成.ko文件?

发布于 2022-09-22 14:02:47 字数 420 浏览 14 评论 0

编译使不能生成.ko

环境是fc9,因为它本身不包含内核,所以我下载了一个,重新编译了

不知道是什么原因
[root@localhost project]# make -C /usr/src/linux-2.6.27.6 M=$PWD modules
make: Entering directory `/usr/src/linux-2.6.27.6'
  Building modules, stage 2.
  MODPOST 0 modules
make: Leaving directory `/usr/src/linux-2.6.27.6'

程序是按ldd3上面写的

达人指点一下,弄很长时间了

谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

哭了丶谁疼 2022-09-29 14:02:47

你编译的内核执行make modules_install了吗

听闻余生 2022-09-29 14:02:47

就是/lib/modules目录下生成了以你使用源码版本命名的目录了吗

花开浅夏 2022-09-29 14:02:47

应该是重新编译的时候除了问题,你可以找个最简单的helloworld编译一下试试

爱给你人给你 2022-09-29 14:02:47

原帖由 Godbach 于 2008-11-16 19:59 发表
就是/lib/modules目录下生成了以你使用源码版本命名的目录了吗

make modules_install命令作了
在lib/modules下面也生成了2。6。27。6的目录

秋凉 2022-09-29 14:02:47

原帖由 dreamice 于 2008-11-16 20:09 发表
应该是重新编译的时候除了问题,你可以找个最简单的helloworld编译一下试试

试过了,没问题

我想可能是不是,gcc还是用的以前内核头文件的原因阿,或者说当初标准库编译的时候,用的旧的内核头文件

郁闷阿

鹤舞 2022-09-29 14:02:47

原帖由 我是害虫 于 2008-11-16 20:41 发表

试过了,没问题

我想可能是不是,gcc还是用的以前内核头文件的原因阿,或者说当初标准库编译的时候,用的旧的内核头文件

郁闷阿

如果helloworld可以编译的话,你把你的代码贴出来看看,到底是怎么回事。

℡Ms空城旧梦 2022-09-29 14:02:47

原帖由 dreamice 于 2008-11-16 21:28 发表

如果helloworld可以编译的话,你把你的代码贴出来看看,到底是怎么回事。

  1. #include <linux/module.h>       
  2. #include <linux/kernel.h>       
  3. int init_module(void)
  4. {
  5.         printk(KERN_ALERT "Hello world \n");
  6.         return 0;
  7. }
  8. void cleanup_module(void)
  9. {
  10.         printk(KERN_ALERT "Goodbye world\n");
  11. }
  12. module_init(init_module);
  13. module_exit(cleanup_module);

复制代码

makefile文件是
obj-m +=hello.o

[root@localhost project]# make -C /usr/src/linux-2.6.27.6 M=$PWD modules        //在源程序目录里执行的
make: Entering directory `/usr/src/linux-2.6.27.6'
  Building modules, stage 2.
  MODPOST 0 modules
make: Leaving directory `/usr/src/linux-2.6.27.6'

我觉得不是程序的问题,不知道您用的是什么环境

[ 本帖最后由 我是害虫 于 2008-11-16 21:53 编辑 ]

滥情稳全场 2022-09-29 14:02:47

给你一个参考的Makefile试一下

  1. TARGET = hello
  2. KDIR = /lib/modules/$(shell uname -r)/build
  3. PWD = $(shell pwd)
  4. obj-m := $(TARGET).o
  5. default:
  6.         make -C $(KDIR) M=$(PWD) modules
  7. clean:
  8.         $(RM) *.o *.ko *.mod.c Module.symvers

复制代码

我还不会笑 2022-09-29 14:02:47

谢谢你
成功了
能告诉我是因为什么原因吗

我感觉把您给我的makefile展开,和我得差不多阿

make语句真难懂啊,给推荐本书把
再次谢谢你

[ 本帖最后由 我是害虫 于 2008-11-16 22:36 编辑 ]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文