一、环境搭建
最简单的方法就是:
1、Windows下安装VMware
2、WMware下安装Ubuntu(本人装的ubuntu-10.04-desktop-i386(ubuntu发行版的名字、10.04是10年04月、desktop是发行的版本、i386是cpu的型号和类型))
3、此时你的环境已经搭建好了,要多简单就多简单,是不是还没有做什么?怎么可能?这是因为Ubuntu已经帮我们做好了。
4、刚安装Ubuntu怎么配置屏幕分辨率呢?System-Preferences-Monitors
5、验证:打开终端(快捷键:ctrl+atl+t)输入uname -a或uname -r查看内核版本;源码目录:/usr/src
二、小试牛刀
1、在你的用户下新建一个目录:study(可以任意,本文以study为例)
2、建两个文件
第一个:hello.c
代码如下:
#include<linux/module.h>
#include<linux/init.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello world.\n");
return 0;
}
static int hello_exit(void)
{
printk(KERN_ALERT "Goodbye.\n");
return 0;
}
module_init(hello_init);
module_exit(hello_exit);
第二个文件:Makefile(注意M大写且无后缀名,下面的all和clean下的那一行指令前的空白式一个Tab建)
内容如下:
obj-m := hello.o
KERNEL_DIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all:
make -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules
clean:
rm *.o *.ko
.PHONY:clean
3、执行(注意:当提示Operation not permitted请在指令前加sudo)
首先进入到目录study
然后执行:make
其次加载模块到内核:insmod ./hello.ko
查看是否有hello模块:lsmod
最后卸载模块:rmmod hello