第一个内核测试程序
来源:互联网 发布:linux如何查看内核日志 编辑:程序博客网 时间:2024/06/12 22:06
1.在vmware安装上centos
网络设置,参考http://blog.sina.com.cn/s/blog_3e4dd88d0100yaur.html,注意在centos 右上角的网络图标选择对应的网络设备。
2.安装gcc环境
yum install gcc-c++
3.安装内核文件
yum install kernel-devel
4.编写hello.c文件
例子参考:http://edsionte.com/techblog/archives/1336
#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>//必选//模块许可声明MODULE_LICENSE("GPL");//模块加载函数static int hello_init(void){ printk(KERN_ALERT"hello,I am edsionte\n"); return 0;}//模块卸载函数static void hello_exit(void){ printk(KERN_ALERT"goodbye,kernel\n");}//模块注册module_init(hello_init);module_exit(hello_exit);//可选MODULE_AUTHOR("edsionte Wu");MODULE_DESCRIPTION("This is a simple example!\n");MODULE_ALIAS("A simplest example");
5.编写Makefile
obj-m += hello.o#generate the pathCURRENT_PATH:=$(shell pwd)#the current kernel version numberLINUX_KERNEL:=$(shell uname -r)#the absolute path#LINUX_KERNEL_PATH:=/usr/src/linux-headers-$(LINUX_KERNEL)#这里的内核路径注意根据实际情况修改,确保内核路径指向正确,以下是centos的路径#LINUX_KERNEL_PATH:=/usr/src/kernels/2.6.32-573.22.1.el6.i686LINUX_KERNEL_PATH:=/usr/src/kernels/2.6.18-194.el5-i686#complie objectall:make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules#cleanclean:make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean
#注意make前面必须有tab字符,否则编译会出现make: Nothing to be done for `all'.
6.编译
输入make命令
7.测试
运行insmod hello.ko
查看lsmod
查看消息tail /var/log/messages
卸载rmmod hello
另一种查看消息命令dmesg
0 0
- 第一个内核测试程序
- 第一个测试程序
- 内核启动第一个程序
- 第一个CGI测试程序
- [PyQt]第一个测试程序
- 第一个程序测试(三)
- 第一个levelDB测试程序
- SWT第一个程序测试
- 第一个内核模块程序编译
- pic的第一个测试程序
- wdk安装及测试第一个程序
- opencv2的第一个测试小程序
- 测试UNIX网络编程第一个程序
- caffe windows学习:第一个测试程序
- 编译第一个opencv测试程序
- 第一个程序 测试使用的
- 第一个程序测试 (1001)
- caffe windows学习:第一个测试程序
- 我理解的设计模式:单例模式
- 人工智能中对机器学非常简要的介绍
- 模板-KM算法
- Reverse Nodes in k-Group
- Windows Server 2012 如何将软件加入开机自启项
- 第一个内核测试程序
- error LNK2005: __pRawDllMain already defined in UiPlugin.obj
- Centos安装MySQL数据库遇到的问题总结
- 如何在HTML页面中保留空格和换行符
- POJ 2947 高斯消元
- Android——文本类控件
- Mac或Windows下安装MyEclipse2015
- nginx搭建rtmp协议流媒体服务器总结
- Objective-c_Date 日期对象