我是靠谱客的博主 平淡手机,最近开发中收集的这篇文章主要介绍Linux驱动编译进内核Linux驱动编译进内核,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Linux驱动编译进内核

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

前言

  • Linux驱动一般调试阶段编译成模块,使用insmod命令将模块加载进内核。
  • Linux驱动编译模块和开机自动挂载模块

将驱动模块编译进内核

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

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编译内核;

最后

以上就是平淡手机为你收集整理的Linux驱动编译进内核Linux驱动编译进内核的全部内容,希望文章能够帮你解决Linux驱动编译进内核Linux驱动编译进内核所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部