首页
›
Linux内核与驱动
›
158-网卡NIC驱动开发
›
《QEMU PCIe网卡模型开发与Linux驱动联合调试》
VIP10
本课程属于:158-网卡NIC驱动开发
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
QEMU PCIe网卡模型开发与Linux驱动联合调试
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论与目标
介绍本课程的目标 · 学习路径 · 前置知识要求(C语言
课程导论
目标
02
开发环境总览
概述整个开发环境的技术栈(Host… · QEMU · Guest OS
开发环境总览
Host
03
宿主机环境准备(Linux)
详细讲解在Ubuntu/Debian… · git · vim
Linux
宿主机环境准备
04
QEMU源码编译与安装
从源码编译QEMU(版本7.2+) · 配置支持PCIe · virtio
QEMU
源码编译
05
Guest OS内核源码准备
下载并解压Linux内核源码(如6.… · 讲解内核目录结构 · 重点介绍drivers/net/和i…
Guest
OS
06
最小化内核配置与编译
使用make defconfig生成… · 然后通过make menuconfi… · 网络设备
最小化内核配置
编译
07
构建根文件系统(BusyBox)
下载BusyBox · 配置并编译生成最小化的根文件系统 · 包含基本的shell命令和网络工具(…
BusyBox
构建根文件系统
08
制作可启动的磁盘镜像
使用dd命令创建ext4格式的磁盘镜… · 将内核和根文件系统打包进去 · 并配置GRUB或直接使用QEMU的-…
制作可启动的磁盘…
dd
09
QEMU启动Guest OS验证
编写QEMU启动脚本 · 成功引导Guest OS进入shel… · 验证网络设备(virtio-net)…
QEMU
Guest
10
PCIe设备模型基础
讲解PCIe配置空间(Configu… · BAR(Base Address R… · MSI/MSI-X中断机制
PCIe
设备模型基础
11
QEMU PCIe设备模拟原理
深入QEMU源码 · 分析hw/pci/目录下的核心数据结… · PCIBus)
QEMU
PCIe
12
编写第一个QEMU PCIe设备模型
在QEMU源码中创建一个简单的PCI… · 实现MMIO读写回调 · 并编译到QEMU中
QEMU
PCIe
13
为QEMU设备添加PCIe网卡功能
在自定义PCIe设备基础上 · 添加网络后端(netdev) · 实现数据包的接收与发送(使用tap或…
QEMU
PCIe
14
Guest OS内核驱动框架
讲解Linux网络设备驱动的基本框架… · struct net_device_… · 中断处理函数)
Guest
OS
15
编写PCIe网卡驱动(探测与初始化)
实现驱动的probe函数 · 读取PCIe配置空间 · 获取BAR地址
PCIe
编写
16
编写PCIe网卡驱动(数据发送)
实现ndo_start_xmit函数 · 将skb数据包通过MMIO写入QEM… · 并触发发送
PCIe
编写
17
编写PCIe网卡驱动(数据接收与中断)
实现中断处理函数 · 在QEMU设备发送数据包时触发MSI… · Guest OS从中断上下文中读取数…
PCIe
编写
18
QEMU与Guest OS的调试桥梁
配置QEMU的GDB stub(-s… · 讲解如何从宿主机使用GDB连接Gue…
QEMU
Guest
19
使用GDB调试驱动初始化流程
设置断点在probe函数 · 单步跟踪PCIe配置空间读取 · BAR映射
GDB
使用
20
使用GDB调试数据收发流程
在ndo_start_xmit和中断… · 观察skb数据内容 · MMIO寄存器读写
GDB
使用
21
QEMU日志与trace事件
启用QEMU的日志功能(-d tra… · 分析PCIe配置空间访问 · MMIO读写事件
QEMU
trace
22
常见问题与故障排除(一)
Guest OS无法识别PCIe设备… · PCIe拓扑 · 内核PCIe子系统配置
常见问题
故障排除
23
常见问题与故障排除(二)
驱动probe失败——分析dmesg… · 检查BAR地址有效性 · MMIO映射是否正确
常见问题
故障排除
24
常见问题与故障排除(三)
数据包发送/接收失败——检查ndo_… · 中断处理函数是否被调用 · QEMU网络后端配置
常见问题
故障排除
25
性能优化初步
调整NAPI(New API)轮询机… · 增加TX/RX描述符环深度 · 使用DMA(模拟)减少CPU拷贝
性能优化初步
NAPI
26
添加多队列支持(RSS)
在QEMU设备模型中模拟多个TX/R… · 在驱动中实现多队列中断和负载均衡
RSS
添加多队列支持
27
模拟高级特性
VLAN offload · TSO/GSO · 校验和卸载——在QEMU设备中实现这…
模拟高级特性
VLAN
28
自动化测试框架
编写简单的发包/收包测试脚本(使用p… · 在Guest OS中运行 · 验证驱动功能与性能
自动化测试框架
编写简单的发包
29
课程总结与进阶方向
回顾整个环境搭建与驱动开发流程 · 推荐进一步学习DPDK · XDP
课程总结
进阶方向
30
附录
常用命令速查表与参考资料 · GDB调试命令 · 内核配置选项
附录
常用命令速查表
所属VIP或分类
同VIP:PCIe设备枚举进阶:ACPI中断路由与多网卡资源分配
同VIP:中断处理函数优化:MSI-X多向量中断与CPU亲缘性配置
同VIP:从零完成网卡NIC驱动DMA环形缓冲区设计与实现