进行底层驱动开发,必不可少的就是将驱动程序加载进内核,然而我们熟知的方法又有哪些呢?今天在这里介绍2种常用的方法,这里是基于MINI2440开发的;
工具/原料
Ubuntu12.04操作系统和测试驱动程序(beep_arv.c)
方法/步骤
1、在介绍2种方法前,必须知道的知识点:1.关联文件Makefil娣定撰钠e:Makefile:分布在Linux内核翮堠江辰源代码中的Makefile用于定义Linux内核的编译规则;2.管理文件Kconfig:给用户提供配置选择的功能;配置工具:1)包括配置命令解析器;2)配置用户界面;menuconfig||xconfig;3)通过脚本语言编写的;3.---tristate代表三种状态:1.[]不选择,2.[*]选择直接编译进内核,加载驱动到内核里,3.[m]动态加载驱动;---bool代表两种状态,1.[]不选择,2.[*]选择;
2、---"Mini2440modulesample"这个是在makemenuconfig时刷出的提示字符;---dependsonMACH_MINI2440这个配置选项出现在makemenuconfig菜单栏下,在内核配置中必须选中、MACH_MINI2440;---defaultmifMACH_MINI2440这个如果选中了MACH_MINI2440,默认是手动加载这个驱动;help:提示帮助信息;
3、在了解了基本的知识点,便开始进行第一种添加驱动的方法,本次交流鋈守踬痊是以beep_arv.c蜂鸣驱动程序为基础的方法一:1)进入内核的驱动目录;#cpbeep_arv.c/XXX/.../l足毂忍珩inux-XXXl/drivers/char2)进入Kconfig添加驱动信息;#cd/XXX/linux-XXX/.../drivers/char#vimKconfig添加基本信息:configBEEP_MINI2440tristate"---HAH---BEEP"defaulthelpthisistestmakefile!
4、3)进入Makefile添加驱动编译信息;#vimMakefile添加基本信息:obj-$(CONFIG-BEEP_MINI2440)+=beep_drv.o
5、方法一结果:在--Characterdevices下就能看到配置信息了;
6、方法二:1)进入驱动目录,创建BEED目录;#cd漆虱忧甘/XXX/.../linux-XXX/drivers/char#mkdirbeep2)将beep_arv.c驱动程序复制到新建目录下;#c禊诬娱飑pbeep_arv.c/XXX/.../linux-XXXl/drivers/char/beep3)创建Makefile和Kconfig文件#cdchar/beep#touchMakefileKconfig#chmod755Makefile#chmod755Kconfig
7、4)进入Kconfig添加驱动信息;#vimKconfig添加基本信息:configBEEP_MINI2440tristate"---HAH---BEEP"defaulthelpthisistestmakefile!
8、5)进入Makefile添加驱动编译信息;#vimMakefile添加基本信息:obj-$(CONFIG_BEEP_MINI2440)+=beep_drv.o
9、6)并且要到上一级目录的Makefile和Kconfig添加驱动信息;#cd../#vimMakefile#vimKconfig