Linux驱动编译进内核

Linux驱动编译进内核

  • Fang XS.
  • 1452512966@qq.com
  • 如果有错误,希望被指出

前言

将驱动模块编译进内核

  • 一般情况下,将驱动编译成模块进行测试,确认无误再将模块编译进内核。
  • 确保模块是可编译通过且经过验证的。

1.将驱动源文件dev.c复制到内核源码drivers/相应目录

  • 注: 是复制到相应目录,本文以字符驱动为例。

1
3.修改当前目录下的Kconfig文件

# my test 
config DEV								# config   关键字  表示后面是菜单项
# tristate参数代表3种状态(y:编译进内核,n:不编译进内核,m:编译成模块),后面字符串是描述信息
tristate "my dev for sunxi f1c200s"		
default y								# default y 表示默认编译进内核
help									
 this driver supports sunxi f1c200s.

1
3. 修改Makefile

 # my test
obj-$(CONFIG_DEV)   += dev.o						# ()里的与Kconfig对应
  1. 回到源码顶级目录,运行menuconfig.
$ cd ../..									# 回到源码顶级目录
$ export ARCH=arm							# 设置SoC架构,根据实际情况修改
$ export CROSS_COMPILE=arm-linux-gnueabi-	# 设置交叉编译器,根据实际情况修改
$ make menuconfig

在这里插入图片描述
可以看到:

# Legend: [*] built-in  [ ] excluded  <M> module  < > module capable 
Device Drivers  ---> 
	Character devices  --->  
		 <*> my dev for sunxi f1c200s    # * 即编译进内核

保存,退出:
在这里插入图片描述
5. 执行make就可以编译内核了。

总结

  • 将驱动模块编译进内核
    • 将驱动源文件添加到内核驱动文件夹;
    • 修改同级目录下的KconfigMakefile
    • 执行make menuconfig将新添加驱动模块选中,保存退出;
    • 执行make编译内核;
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值