2.6内核的源码树目录下一般都会有两种文件:Kconfig和Makefile。分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig等时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.config,就知道了用户对内核的配置情况。假如要想添加新的驱动到内核的源码中,可以通过修改Kconfig来增加对我们驱动的配置菜单,这样就有途径选择我们的驱动,假如想使这个驱动被编译,还要修改该驱动所在目录下的Makefile。
将驱动程序直接编译进内核
精选 转载驱动程序可以编译成内核模块也可以直接编译进内核。下面以字符设备驱动为例
1.将驱动代码拷贝到drivers/char/
#cp hello.c /root/linux-2.6.32.2/drivers/char/ Kconfig
#pwd
/root/linux-2.6.32.2
#vim /root/linux-2.6.32.2/drivers/char/
2.在drivers/char/Kconfig中添加代码
如下:颜色部分为添加的代码
menu "Character devices"
config HELLO_WORD
bool "helloword"
3.选中hello模块
#pwd
/root/linux-2.6.32.2
# make menuconfig ARCH=arm
进入Device Deivers -->Charater devices -->
选中helloword
配置完后在.confi中就自动生成了如下代码
CONFIG_HELLO_WORD=y
4.修改对应的Makefile
#pwd
# vim ./drivers/char/Makefile
添加
obj-$(CONFIG_HELLO_WORD) += hello.o //添加部分
obj-$(CONFIG_LEGACY_PTYS) += pty.o
obj-$(CONFIG_UNIX98_PTYS) += pty.o
obj-m则直接编译成模块
obj-$(CONFIG_HELLO_WORD)模型要根据配置项而定
5. 编译内核
# make uImage ARCH=arm CROSS_COMPILE=arm-linux-
上一篇:qt
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux内核开发之将驱动程序添加到内核
&n
工具 脚本 linux内核 makefile module -
Linux驱动实践:带你一步一步编译内核驱动程序
作 者:道哥,10+年嵌入式开发老兵,专注于:C/C动程序的编写方法。文章的顺序,..
linux 操作系统 驱动模块 驱动程序