PC机上Ubuntu9.10系统下
1. 驱动程序源码及Makefile如下:
#------源程序------#
#include
#include
static int __init hello_init() //“__init”使hello_init()函数放到初始化代码段里
{
printk("Hello, driver!\n");
return 0;
}
static int __exit hello_exit()
{
printk("Goodbye, driver!\n");
return 0;
}
module_init(hello_init);
module_exit(hello_exit);
#------Makefile------#
KVERS = $(shell uname -r)
# Kernel modules
obj-m += hello.o
# Specify flags for the module compilation.
#EXTRA_CFLAGS=-g -O0
build: kernel_modules
kernel_modules:
make -C /lib/modules/$(KVERS)/build M=$(CURDIR) modules
clean:
make -C /lib/modules/$(KVERS)/build M=$(CURDIR) clean
2.驱动程序编译、安装及结果显示:
a.在第一个终端里 root@book-desktop:~# make
//生成hello.ko
b.在第二个终端里 root@book-desktop:~# tail -f /var/log/messages
//查看日志文件内容,-f选项使之不断刷新显示
c.在第一个终端里 root@book-desktop:~# insmod ./hello.ko
//安装驱动
在第二个终端里自动输出:
Apr 7 19:26:06 book-desktop kernel: [ 9345.546564] Hello, driver!
d.在第一个终端里 root@book-desktop:~# rmmod hello
//卸载驱动
在第二个终端里自动输出:
Apr 7 19:26:11 book-desktop kernel: [ 9349.953772] Goodbye, driver!
取消
评论