linux2.6内核模块的编译
2014-06-06 20:30
435 查看
首先将下面的程序写进一个hello1.c的文件里: #vim hello1.c #include "linux/module.h" #include "linux/kernel.h" #include "linux/init.h" static int __init lkp_init(void) { printk("<1> Hello,world!From the kernel space...\n"); return 0; } static void __exit lkp_cleanup(void) { printk("<1>Goodbye,World!Leaving kernel space...\n"); } module_init(lkp_init); module_exit(lkp_cleanup); MODULE_LICENSE("GPL"); 然后编写Makefile:(与hello1.c文件在同一目录下) #vim Makefile obj-m += hello1.o all: make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) clean 注意:两个make前要先使用Tab键空出。 最后就可以编译了,使用make就可以了。 #make 编译通过后会生成hello1.ko, hello1.o, hello1.mod.c, hello1.mod.o, Module.symvers。 使用modinfo hello1.ko命令可以查看hello1模块的信息。其命令格式为: #modinfo hello1.ko 使用insmod hello1.ko命令可以将hello1模块加入到内核中。其命令格式为: #sudo insmod hello1.ko 使用lsmod命令可以查看当前系统正在使用的模块信息。其命令格式为: #sudo lsmod 使用rmmod hello1命令可以将hello1模块移出内核。其命令格式为: #sudo rmmod hello1 |
0
上一篇:linux2.6调度分析
下一篇: 悬挂运动控制系统设计报告
相关热门文章
VMware下CentOS 6编译内核...
use 和 require 的区别
Android之JNI实践一(环境搭建...
C++中多线程Singleton的实现...
交叉编译memtester
linux 常见服务端口
【ROOTFS搭建】busybox的httpd...
xmanager 2.0 for linux配置
什么是shell
linux socket的bug??
初学UNIX环境高级编程的,关于...
chinaunix博客什么时候可以设...
一个访问量较大网站的服务器。...
收音机驱动与v4l2架构的关系,...
如何将linux驱动改为裸机驱动(...
给主人留下些什么吧!~~
评论热议
相关文章推荐
- linux 2.6内核 编译模块Makefile 详解!
- Linuxx 2.6内核可加载模块的编译
- Linux 2.6内核下外部模块的编译
- Linux内核2.4和2.6编译模块的方法
- Linux 2.6内核的编译步骤及模块动态加载
- linux 2.6内核 编译模块Makefile
- Linux 2.6内核的编译步骤及模块的动态加载
- 在Linux2.6内核(CentOS)中编译内核模块的一个例子
- Linux 2.6内核的编译步骤及模块的动态加载
- Linux 2.4和2.6内核模块编译的差别
- 从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响—linux2.4单独编译驱动模块
- linux2.6内核模块编译的makefile模板
- 在Linux 2.6内核下编译可以加载的内核模块
- 在Linux 2.6内核下编译可以加载的内核模块_转载
- Linux 2.6内核的编译步骤及模块的动态加载
- Linux 2.6内核的编译步骤及模块的动态加载
- Linux 2.6内核的编译步骤及模块动态加载
- Linux 2.6内核下编译可以加载的内核模块
- linux 2.6内核 编译模块Makefile 详解
- LINUX 2.6 内核下多C文件模块编译方法