第三方驱动移植

文章介绍了如何将第三方驱动移植到Linux内核中,包括选择驱动存放目录,修改Makefile和Kconfig文件以使驱动能在内核编译时被包含。Kconfig用于在图形界面中配置选项,而menuconfig则基于Kconfig生成配置界面。编译驱动可以选择编译进内核或为独立模块,模块化编译允许更灵活的管理。白盒移植和黑盒移植是两种不同的移植策略,其中平台设备驱动能简化白盒移植过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三方驱动的移植

内核没有的驱动,就需要移植第三方的驱动

黑盒移植

不关心他底层如何实现的

编译驱动进内核

a 选择驱动存放目录(或者任意目录)
一般放到内核driver目录下对应的设备类型(字符设备或者其他设备)的文件夹下
b 改Makefile
不改的话,第三方的驱动C文件不会在内核中编译
c 改 Kconfig(界面可配置)
一般情况下在内核里面makefile旁边都有个Kconfig,Makefile负责具体的编译管理,
Kconfig负责在界面里显示相关的选项(Kconfig自己有一套语法,感兴趣再学)

大体思路是kconfig里面添加一个新的设备描述(可以仿照其他设备是怎么写的)
然后你这个kconfig要和makefile关联起来,kconfig本身只是起到一个图形化显示
的作用,真正的编译还是得靠makefile,如果你的makefile里相关的设备驱动c文件
编译指令已经写死,那你是不能通过menuconfig来控制是否编译这个驱动
Kconfig与menuconfig的关系
menuconfig执行的时候会自动读取内核源码下的Kconfig,然后生成界面。一个低级菜单对应一个Kconfig
Kconfig与menuconfig关联
顶层目录下的makefile里的编译选项是和kconfig里的一一对应的。也就是说要想
关联在一起,你的第三方设备的名字在kconfig和makefile里指定的引用变量的名字
要一样

比如你在kconfig里写了一个
config LED
那么你顶层makefile里要这么写才能关联
obj-$(CONFIG_LED) += led.o//括号里面一定要大写,这是他规定的语法led.o
这个文件名要和驱动c文件一样(我这里是led.c)

编译驱动为独立的模块

编译为模块或者编译进内核都是为了方便管理各种驱动而存在的
a 配置为模块方式
b make moudles 编译为模块
c 创建设备节点
d 运行测试驱动的应用程序

这部分会在驱动部分讲解,,在其不做赘述

白盒移植

此处会在驱动编写部分记录
移植的时候,平台设备驱动会大大减少我们的工作量

linux移植驱动编写最详细教程,Linux 操作系统的安装以及配置............................................................................................3 1 如何安装RedHat9.0 ................................................................................................3 2 在RedHat 中添加新用户.......................................................................................16 3 配置PC 机Linux 的ftp 服务...................................................................................16 4 配置PC 机Linux 的telnet .....................................................................................17 5 建立交叉编译环境...................................................................................................17 6 编译内核..................................................................................................................17 Linux 的移植.......................................................................................................................19 1 Bootloader 的移植.................................................................................................19 1.1 vivi 的配置与编译..........................................................................................19 1.2 配置和编译vivi .............................................................................................20 1.3 vivi 代码分析..................................................................................................21 1.4 vivi 的运行.....................................................................................................21 1.5 启动代码执行流程图.....................................................................................45 1.6 vivi 的配置文件..............................................................................................45 2 Linux 内核
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值