上面我们的驱动是放在了内核源码的目录下来实现的编译成驱动模块,很多时候我们都是
拿到一个驱动源码,不需要把他放到内核源码里面,而是直接把他编译成驱动模块,下面我们
来讲下实现方法,我们还是以蜂鸣器的驱动为例来讲解。
1)因为开发板带的内核默认是把蜂鸣器直接编译到内核里面了,所以我们要重复前边的
步骤“1”到步骤“19”,完成这些步骤以后,把生成的镜像“zImage”烧写到开发板。
2)然后在虚拟机的目录下用命令 mkdir 建立文件夹“module”,如下图所示。
3)然后用命令 cd 进入到建立的“module”文件夹,如下图所示
4)拷贝内核里面的蜂鸣器驱动到 module 文件夹,如下图所示。
5)然后在 module 文件夹建立文件“Makefile”,如下图所示。
6)然后在"Makefile"文件输入下面的信息。
obj-m += itop4412_buzzer.o
KDIR := /home/broswer/iTop4412_Kernel_3.0
PWD = $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -RF *.o
其中的“KDIR := /home/broswer/iTop4412_Kernel_3.0"是指定我们内核源码所在的目
录,我这里内核源码是放在了“/home/broswer/”目录下面,需要根据自己的存放位置来修
改这个目录。
7)然后保存并退出 Makefile,在终端输入”make“命令,编译蜂鸣器驱动,如下图所
示。
8)编译完成后,可以看下在“module”文件夹下面生成了“itop4412_buzzer.ko”,
如下图所示。
9)然后可以参照前面的步骤”22“来测试我们编译的蜂鸣器驱动了。