linux 系统 ko模块编译
2014-05-12 14:30
375 查看
今天整理以前笔记,发现曾经里面有一个Makefile文件。
仔细一看是以前实习做linux内核程序设计时候写的模块makefile。刚好我电脑也有linux系统,就拿来回顾一下。
写个my.c和一个Makefile文件,然后make编译一下,就成功了,生成my.ko
再加载一下insmod my.ko dmesg|grep module 看到模块初始化时候的打印
卸载模块rmmod my.ko dmesg|grep module 看模块卸载时候的打印
都是对的,看来以前学的东西还是记得了……再mark一下。
注意事项:
1、内核目录
2、Makefile中obj-m:=my.o 这个和源文件my.c要对应
3、mymodule-objs:=module 这个my也是和my.c对应的
如果源文件为your.c
这两句话就应该改为obj-m:=your.o
yourmodule-objs:=module
4、查看输出的时候 用dmesg输出信息太多,可以用grep过滤一下
dmesg | grep "keywords"
内核源文件
[cpp] view
plaincopy
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
static int funcIn(void)
{
printk("in module");
return 0;
}
static void funcOut(void)
{
printk("out module");
return;
}
module_init(funcIn);
module_exit(funcOut);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("elfy");
Makefile 文件
我linux内核目录为/lib/modules/2.6.31-14-generic/build
具体看自己机器的文件
[cpp] view
plaincopy
obj-m:=my.o
mymodule-objs:=module
KDIR:=/lib/modules/2.6.31-14-generic/build
MAKE:=make
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
仔细一看是以前实习做linux内核程序设计时候写的模块makefile。刚好我电脑也有linux系统,就拿来回顾一下。
写个my.c和一个Makefile文件,然后make编译一下,就成功了,生成my.ko
再加载一下insmod my.ko dmesg|grep module 看到模块初始化时候的打印
卸载模块rmmod my.ko dmesg|grep module 看模块卸载时候的打印
都是对的,看来以前学的东西还是记得了……再mark一下。
注意事项:
1、内核目录
2、Makefile中obj-m:=my.o 这个和源文件my.c要对应
3、mymodule-objs:=module 这个my也是和my.c对应的
如果源文件为your.c
这两句话就应该改为obj-m:=your.o
yourmodule-objs:=module
4、查看输出的时候 用dmesg输出信息太多,可以用grep过滤一下
dmesg | grep "keywords"
内核源文件
[cpp] view
plaincopy
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
static int funcIn(void)
{
printk("in module");
return 0;
}
static void funcOut(void)
{
printk("out module");
return;
}
module_init(funcIn);
module_exit(funcOut);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("elfy");
Makefile 文件
我linux内核目录为/lib/modules/2.6.31-14-generic/build
具体看自己机器的文件
[cpp] view
plaincopy
obj-m:=my.o
mymodule-objs:=module
KDIR:=/lib/modules/2.6.31-14-generic/build
MAKE:=make
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
相关文章推荐
- linux 系统 ko模块编译
- linux 系统 ko模块编译
- linux 系统 ko模块编译
- linux 系统 ko模块编译
- 在Ubuntu上为Android系统编写Linux内核驱动程序 + 编写加载动态模块ko
- Android开发linux下系统大模块编译、单模块编译、代码定位、指令总结
- 如何编译linux第一个模块 hellomod.ko
- 如何编译linux第一个模块 hellomod.ko
- 将驱动编译成.ko文件添加到嵌入式Linux系统下
- 如何编译linux第一个模块 hellomod.ko
- Linux最小根文件系统的建立,内核模块的编译,Qemu模拟测试最小系统
- linux 模块层叠技术和多个ko的编译
- linux文件系统与nginx模块系统异曲同工之妙
- Linux系统下编译连接C源代码
- linux 模块的编译和加载
- Linux系统驱动编译与运行
- linux 内核模块编程之编译多个源文件(三)
- 基于mini2440的linux驱动程序模块编译测试笔记
- 在虚拟机Linux系统上手工编译安装Mysql
- 单独编译Android系统模块并替换进系统