(1)linux-2.6/drivers/目录下,新建mymodule文件夹
(2)hello_world.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h> //驱动最基本的3个头文件
MODULE_LICENSE("GPL"); //GPL lisence
static int hello_world_init(void)
{
printk(KERN_ALERT "Hello,kimi\n");
return 0;
}
static void hello_world_exit(void)
{
printk(KERN_ALERT "Goodbye,kimi\n Love Linux !\n");
}
module_init(hello_world_init);
module_exit(hello_world_exit);
(3)编译相关
新建Kconfig文件
menuconfig MY_MODULE
bool "My Module Support"
help
This is myself module.
config HELLO_WORLD
tristate "Hello World test Support"
depends on MY_MODULE
help
This is a hello world test driver.
新建Makefile文件
#hello world
obj-$(CONFIG_HELLO_WORLD) += hello_world.o
修改上级目录Kconfig, 增加
#mymodule
source "drivers/mymodule/Kconfig"
修改上级目录Makefile, 增加
#mymodule
obj-y += mymodule/
(5)make menuconfig 选择hello_world驱动
M 选择为动态加载
(6)下载zImage到开发板
cd /lib/modules/2.6.39-01079-g938653e-dirty/kernel/drivers/mymodule>
insmod hello_world.ko
rmmod hello_world.ko
lsmod 查看加载驱动