1、编写Hello_world.c内核模块源文件
#include <linux/module.h>
#include <linux/init.h>
static int helloworld_init(void)
{
printk(KERN_ALERT,"helloworld_init!\n");
return 0;
}
static void helloworld_exit(void)
{
printk(KERN_ALERT,"helloworld_exit!\n");
}
module_init(helloworld_init);
module_exit(helloworld_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("yuewen");
2、查看内核版本。我的主机安装的是ubuntu14.04内核版本是3.13.0-24-generic
3、编写makefile脚本
#sample driver module
obj-m := hello_world.o
KDIR = /lib/modules/3.13.0-24-generic/build/
all:
$(MAKE) -C $(KDIR) M=$(PWD)
.PHONY:clean
clean:
rm -f *.mod.c *.mod.o *.ko *.o *.tmp_versions
4、编译与测试
执行make命令开始编译,编译通过。
加载内核模块:
insmod hello_world.ko
查看加载的内核模块:
lsmod:
运行dmesg查看内核打印:
驱动开发也是一直在学习当中,今天就尝试下在ubuntu下编译一个简单的驱动代码,一些驱动实验自然也可以在ubuntu主机上进行,这样只需要一台PC就可以了,省去了很多麻烦。