编译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

 

 

相关文章推荐

Linux中编写自己的I2C总线模块

虽然Linux中有了自己的I2C模块,但是对于一些外设需要通过I2C来设置寄存器,Linux中的I2C模块就不那么灵活了,这里主要说明了如何利用已有的总线驱动自己编写设备驱动来实现I2C的通信。 ...
  • RuifDu
  • RuifDu
  • 2013年08月03日 21:59
  • 983

在Linux内核模块中操作I2C设备

近期公司项目较为空闲,抽空做了一些学习性质的研发内容,其中涉及到在Linux内核模块中使用I2C对外部器件进行控制的操作。虽然在Linux中操作使用I2C设备并不复杂,但本人接触Linux内核驱动开发...

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

MODULE_NAME :=test RESMAN_CORE_OBJS :=hello1.o RESMAN_GLUE_OBJS :=hello2.o $(MODULE_NAME)-objs :=...

转 Android编译环境(2) - 手工编译C模块

Android编译环境(2) - 手工编译C模块上一篇中(即《Android编译环境(1) - 编译Native C的helloworld模块》),我们试用了通过标准的Android.mk文件来编译C...

如何编译linux第一个模块 hello.c

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

Linux C - [2] - 之 编译 helloworld

使用 VI 编写源代码 VI 是 Linux 系统中最常用的文本编辑器,几乎所有 Linux 发行版中都已包含VI程序。 如何打开 VI 编辑器下列命令用于创建一个名为 helloworld 的目...
  • unixye
  • unixye
  • 2016年01月12日 16:37
  • 118

基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(四)交叉编译OpenSSL、c-ares、e2fsprogs和mosquitto

本篇主旨是编译安装mosquitto,其他的库是它的依赖库。后面我们交叉编译的程序都将放置在主机的”/usr/local/arm/”目录中,以区别主机本地的应用程序。 我的mimi2440的根文件系...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译linux模块--c2
举报原因:
原因补充:

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