VIP20
本课程属于:007-Yocto配方 启动链与BSP系统构建 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

Yocto内核驱动配方开发与板级移植

📚 共计 30 章节
01
Yocto项目全景
Yocto是什么?为什么需要Yocto?Poky、OpenEmbedded、BitBake核心组件解析。
全景概念
02
搭建Yocto开发环境
宿主机要求、安装必要软件包、下载Poky源码、首次构建最小系统。
环境构建
03
理解BitBake基础
BitBake是什么?Recipe、Layer、Class、Configuration文件的概念与关系。
BitBake核心
04
Recipe深度解剖
Recipe文件结构、SRC_URI、DEPENDS、do_compile、do_install等核心任务。
Recipe任务
05
编写第一个Recipe
从零编写一个简单的Hello World Recipe,并集成到镜像中。
入门实践
06
Layer机制详解
Layer的创建、Layer优先级、Layer的依赖关系、meta-oe等常用Layer。
Layer结构
07
内核模块Recipe
编写内核模块的Recipe,使用module.bbclass,解决内核版本依赖。
内核模块驱动
08
设备树集成
在Yocto中管理设备树文件,编写设备树Recipe,覆盖内核默认设备树。
设备树DTS
09
内核配置裁剪
通过Recipe修改内核配置,使用defconfig和fragment,实现内核最小化。
内核裁剪
10
U-Boot定制
编写U-Boot Recipe,打补丁,修改默认环境变量,适配自定义板卡。
U-Boot启动
11
根文件系统构建
使用Yocto构建定制根文件系统,添加/删除包,使用packagegroup。
rootfs包管理
12
驱动模块自动加载
配置模块自动加载,编写modprobe配置文件,处理模块依赖顺序。
模块自动加载
13
固件文件集成
将固件文件打包到Recipe中,处理固件许可问题,安装到/lib/firmware。
固件许可
14
设备节点创建
使用udev规则或devtmpfs,在Recipe中创建设备节点,解决权限问题。
设备节点udev
15
用户空间驱动接口
编写用户空间程序与内核驱动交互,使用ioctl、sysfs、mmap。
用户空间接口
16
SPI/I2C驱动集成
在Yocto中集成SPI/I2C外设驱动,配置设备树节点,验证通信。
SPII2C
17
GPIO驱动与LED控制
编写GPIO驱动Recipe,控制LED,使用sysfs或libgpiod。
GPIOLED
18
音频驱动集成
集成ALSA驱动,配置音频编解码器设备树,测试音频播放与录制。
音频ALSA
19
显示与GPU驱动
集成DRM/KMS驱动,配置GPU驱动(如Mali),测试图形输出。
显示GPU
20
网络驱动集成
集成以太网PHY驱动,配置MAC到PHY的映射,测试网络连通性。
以太网PHY
21
无线驱动集成
集成WiFi/BT驱动,配置固件文件,使用connman或NetworkManager。
WiFi蓝牙
22
USB驱动集成
集成USB主机/设备驱动,配置USB Gadget,测试U盘与HID设备。
USBGadget
23
摄像头驱动集成
集成V4L2驱动,配置CSI接口设备树,测试摄像头采集。
摄像头V4L2
24
传感器驱动集成
集成I2C/SPI传感器驱动,编写用户空间读取程序,校准数据。
传感器校准
25
Patch管理
使用quilt或git am管理驱动补丁,创建、应用、刷新补丁。
补丁quilt
26
Recipe调试技巧
使用devshell、bitbake -c devshell、日志分析、依赖排查。
调试devshell
27
镜像定制与发布
创建自定义镜像Recipe,添加驱动包,生成可烧录镜像。
镜像发布
28
SDK生成与交叉编译
使用bitbake -c populate_sdk生成SDK,交叉编译外部驱动模块。
SDK交叉编译
29
CI/CD集成
将Yocto构建集成到Jenkins/GitLab CI,自动化构建与测试驱动。
CI/CD自动化
30
实战项目
从零为一块自定义板卡移植Linux,集成所有必要驱动,生成可运行系统。
实战移植