读书人

ubuntu上驱动程序的hello world

发布时间: 2012-09-24 13:49:41 作者: rapoo

ubuntu下驱动程序的hello world

本文纯属转贴,原文如下

http://dev.firnow.com/course/6_system/linux/Linuxjs/200865/122399.html

?

记录几个命令。

1.源码树建立

//OS版本取得shana@shana:~$ uname -r//查询源码shana@shana:/usr/src$ apt-cache search linux-source//取得源码shana@shana:/usr/src$ sudo apt-get install linux-source-2.6.22//解冻源码root@shana:/usr/src#tar jxvf linux-source-2.6.20.tar.bz2//配置源码root@shana:/usr/src/linux-source-2.6.22# make oldconfig//编译源码shana@shana:/usr/src/linux-source-2.6.22$ makeshana@shana:/usr/src/linux-source-2.6.22$ make bzImageroot@shana:/usr/src/linux-source-2.6.22#make modulesroot@shana:/usr/src/linux-source-2.6.22#make modules_install//确认源码树cd /lib/modules/2.6.22-14-generic/

?

2.驱动程序例子

??? hello.c

//hello.c#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){printk(KERN_ALERT "Hello, world\n");return 0;}static void hello_exit(void){printk(KERN_ALERT"Goodbye, cruel world\n");}module_init(hello_init);module_exit(hello_exit);

?

??? Makefile

obj-m := hello.oKERNELDIR := /lib/modules/2.6.20/buildPWD := $(shell pwd)modules:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesmodules_install:$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
?

3.编译,加载,卸载

//加载驱动root@shana:/home/shana/driver# insmod ./hello.ko//查看驱动root@shana:/home/shana/driver# lsmod//卸载驱动root@shana:/home/shana/driver# rmmod hello//查看日志shana@shana:~/driver$ cat /var/log/syslog |grep world
?

?

读书人网 >操作系统

热点推荐