有关 Linux 下内核模块的开发方式的记录

来源:互联网 发布:淘宝权为什么叫逃跑权 编辑:程序博客网 时间:2024/05/03 08:45

1、本文全文为半香仙笛(Woody.c)原创

2、如果需要转载本文,请注明出处:http://blog.csdn.net/mcg890414/archive/2010/09/10/5874943.aspx

3、如果需要和笔者交流,请邮件至mcg890414@163.com

 

Thinking in Linux C...

 

前几天照着《Linux设备驱动开发详解》上的 代码翘入了计算机一段内核模块代码,但是完全没有编译成功,gcc告诉我,这个不认识,那个也不认识……

 

内核模块代码如下:

 

很郁闷。但是郁闷之余,还是需要找个途径来解决吧。

上网查了资料,网上牛人太多,写的东西虽然很给力,但是大多看不懂,所以决定还是问实验室同学。

 

同学告诉我,需要make,然后拷贝给我一个makefile的模板,很给力。

makefile(2.6内核)源码如下:

 

很给力。

make之后产生了我要的东西。

然后,insmod ./hello.ko

却告诉我:insmod: error inserting './hello.ko': -1 Operation not permitted

我郁闷了。。。这神马情况?

原来要加sudo,因为这是在往内核插入模块。

OK,成功了,再lsmod能看到hello的模块已经装载成功了

想看看printk的结果?dmesg,看到输出的结果了

嗯,该卸载了。。。

rmmod hello

呀。。。ERROR: Removing 'hello': Operation not permitted
又忘了sudo,这可不是好习惯。。

好了,dmesg看到了,成功卸载模块。

 

嗯,好啦~~

哈哈,原来很简单,其实失败离成功,只是一点点偏差而已。

 

你成功了么?