Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29214
  • 博文数量: 19
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-19 08:37
文章分类
文章存档

2011年(3)

2010年(16)

我的朋友

分类: LINUX

2010-12-15 00:22:32

  .o的文件是object文件,.kokernel object,与.o的区别在于其多了一些sections,比如.modinfo,(.ko 是内核模块文件,是内核加载的某个模块,一般是驱动程序).modinfo section是由kernel source里的modpost工具生成的,包括MODULE_AUTHOR, MODULE_DESCRIPTION, MODULE_LICENSE, device ID table以及模块以来关系等等。 depmod 工具根据.modinfo section生成modules.dep, modules.*map等文件,以便modprobe更方便的加载模块。

2.6内核下编译driver, 首先要确认你的linux系统里有没有 kernel tree,检查的方法是看看文件夹/lib/modules/$(uname -r)/build是否指向source code,并进去看看,是否有Makefile, include, scripts等文件夹,在scripts/mod下可以找到前面提到的modpost,这个东东是 生成.ko的关键。 如果没有kernel tree,需要重新build一份kernel来建立这个kernel tree

2.4内核中,生成的就是.o文件,2.6 kernel对内核模块的管理做了一些扩展!
阅读(1376) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-15 15:09:04

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com