编译linux模块--c2

原创 2011年01月10日 19:32:00

<linux设备驱动程序>

 

 

使用自己的内核代码库

内核版本:2.6.18-194.el5

 

编写hellomod.c :

编写makefile:

 

最后编译:

 

运行结果:

 

加载与卸载模块(root权限):

 

 

 

 

使用从http://www.kernel.org/上下载的源代码,要先进行编译:

 

 

可以将hellomod.c的makefile修改如下:

 

 

 

 

insmod之后若没看到显示的信息,就是输出到系统的日志文件中去了,可以查看文件:

 

 

最后若出现错误:

insmod: error inserting 'hellomod.ko': -1 Invalid module format
可在/var/log/messages下看到错误信息。

 

修改源目录下的Makefie:


最Makefile第1-4行的值改为当前内核一样的值
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 18
EXTRAVERSION = .2
目录为: /lib/modules/'.....'/build/Makefile
 

参考:

http://blog.csdn.net/wooin/archive/2007/05/21/1619141.aspx

http://blog.csdn.net/sabalol/archive/2008/02/01/2076610.aspx

 

 

JVM编译器的编译过程

一、编译器概述 本片文章叙述的是HotSpot虚拟机的编译过程,HotSpot包含一个解释器javac和两个即时编译器,它们之间配合工作。 解释器与编译器: 1、解释器与编译器两者各有优势,当...
  • tingfeng96
  • tingfeng96
  • 2016年08月20日 15:21
  • 1873

编译linux模块

看了书后,照着书上的方法一步一步去做,却失败了,555真是的,写书的人啊,却不考虑一下细节问题新建一个目录[liu@liu-desktop hellomod]$mddir hellomod[liu@l...
  • yunlianglinfeng
  • yunlianglinfeng
  • 2011年06月10日 14:44
  • 594

linux模块编译

内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。模块具有以下特点:   1 模块本身不被编译入内核映像...
  • fllows
  • fllows
  • 2015年06月05日 18:22
  • 147

Linux模块编译

内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。模块具有以下特点:   1 模块本身不被编译入内核映像...
  • zzycgfans
  • zzycgfans
  • 2011年02月22日 10:14
  • 4497

linux模块的编译步骤详解

Linux 模块的编译步骤 1. 源码准备 #include #include MODULE_LICENSE("GPL"); static int hello_init(void) {  print...
  • zkpingguo
  • zkpingguo
  • 2016年04月11日 20:43
  • 459

LINUX 2.6 内核下多C文件模块编译方法

MODULE_NAME :=test RESMAN_CORE_OBJS :=hello1.o RESMAN_GLUE_OBJS :=hello2.o $(MODULE_NAME)-objs :=...
  • u012444155
  • u012444155
  • 2014年03月26日 09:22
  • 810

jstack: Java占用高CPU分析之- C2 Compiler Thread

1. 现象 应用刚上线时发现Java进程占用了大量的CPU份额,但过了几分钟后会降下来(流量没变的情况下),因为已经做了负载均衡,于是拿一台实例重新部署代码上线来分析。具体分析步骤参考另外一篇文...
  • thatcat
  • thatcat
  • 2017年06月30日 16:36
  • 1897

linux模块编译步骤

    本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过...
  • REALvv
  • REALvv
  • 2011年02月12日 13:41
  • 281

编译linux模块命令

sudo make -C /usr/src/linux-headers-2.6.35-22-generic/ M=/home/jianjun/wkspc/hello_kernal 做个备忘...
  • kjianjun
  • kjianjun
  • 2012年08月24日 15:20
  • 325

linux模块编译入门

1. 在linux系统中找任何一个目录,创建一个符合模块结构的模块文件:hello.c #include //module_init()&module_exit相关宏 #include //所有模块...
  • signsmile
  • signsmile
  • 2011年08月26日 16:50
  • 923
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译linux模块--c2
举报原因:
原因补充:

(最多只允许输入30个字)