编写入门的linux模块(Hello World)
2013-04-09 16:54
441 查看
首先在自己的目录下写源码
用VI这个工具
文件命名为hello.c
最后两行指定了模块加载和卸载时执行的函数,加载时执行hello_init,卸载时执行hello_exit。
写一个Makefile,内容如下(文件名也为Makefile)
第一个路径则是要去编译的内核版本的路径 M后面的路径则是hello.c的目录
在当前目录下,编译
可从当前目录下看到生成的文件
会生成一个内核模块hello.ko。这就是我们编译好的内核模块,接下来加载它,并查看结果。
输入命令
insmod hello.ko
输入命令
dmesg
看系统日志(最后一行)
输入命令
lsmod | grep hello
也可查看
输入命令
rmmod hello 卸载模块
再次输入命令
dmesg
看系统日志
用VI这个工具
文件命名为hello.c
// //hello.c // #include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> static int hello_init(void) { printk(KERN_WARNING "Module init: Hello world!\n"); return 0; } static void hello_exit(void) { printk(KERN_WARNING "Module exit: bye-bye\n"); } module_init(hello_init); module_exit(hello_exit);
最后两行指定了模块加载和卸载时执行的函数,加载时执行hello_init,卸载时执行hello_exit。
写一个Makefile,内容如下(文件名也为Makefile)
obj-m = hello.o default: $(MAKE) -C/usr/src/kernels/2.6.18-238.el5-i686 M=$(PWD) modules clean: $(MAKE) -C/usr/src/kernels/2.6.18-238.el5-i686 M=$(PWD) clean
第一个路径则是要去编译的内核版本的路径 M后面的路径则是hello.c的目录
在当前目录下,编译
可从当前目录下看到生成的文件
会生成一个内核模块hello.ko。这就是我们编译好的内核模块,接下来加载它,并查看结果。
输入命令
insmod hello.ko
输入命令
dmesg
看系统日志(最后一行)
输入命令
lsmod | grep hello
也可查看
输入命令
rmmod hello 卸载模块
再次输入命令
dmesg
看系统日志
相关文章推荐
- linux驱动编写(入门)
- 菜鸟入门--在linux下用vim编写一个C程序
- Linux 2.6.xx 内核模块编程入门
- Linux 模块编程-hello world 的准备工作
- Linux驱动入门——构建和运行模块
- Linux 下内核模块的开发方式的记录 及问题解决(入门的Helloworld)
- linux库文件编写入门 && 使用和生成库
- PowerShell入门教程之编写和使用脚本模块实例
- linux下使用vim编写运行C,C++程序(以hello world为例)
- Linux驱动程序入门—Hello World
- Linux操作系统内核模块和驱动的编写过程
- Linux 驱动开发之内核模块开发 (二)—— 内核模块编译 Makefile 入门
- nginx 编写简单HTTP模块以及nginx http handler的hello world示例编写
- linux库文件编写入门 使用和生成库
- Linux 驱动开发之内核模块开发 (二)—— 内核模块编译 Makefile 入门
- 【Linux入门基础知识】Linux 脚本编写基础
- Linux---我的第一个内核模块之Hello World
- linux库文件编写入门
- linux 第一个内核模块Hello World
- 学习笔记:Linux下编写内核模块(0)