|
编译内核模块示例
发表于 2017-6-13 11:01:11
浏览:9953
|
回复:5
打印
[复制链接]
楼主
编译内核的时候有两种方式,1:直接编译进内核 2:编译成单独的内核模块insmod。 在这里介绍下单独的内核模块的编译方式,以hello.c进行示范
废话不多说,直接上程序
1. hello.c
- #include <linux/init.h>
- #include <linux/module.h>
- #include <linux/kernel.h>
- static int __init hello_init(void)
- {
- printk(KERN_ALERT "hello driver init \n");
- return 0;
- }
- static void __exit hello_exit(void)
- {
- printk(KERN_ALERT "hello driver exit \n");
- }
- module_init(hello_init);
- module_exit(hello_exit);
复制代码 2. Makefile
- PWD=$(shell pwd)
- KDIR:=/root/exe/firefly/firefly-rk3288-kernel
- obj-m:= hello.o
- all:
- make ARCH=arm CROSS_COMPILE=/root/exe/firefly/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- -C $(KDIR) M=$(PWD) modules
复制代码
|
|