首页
社区
课程
招聘
[原创]使用GDK7调试Linux内核之观察i915
发表于: 2021-7-13 17:18 5366

[原创]使用GDK7调试Linux内核之观察i915

2021-7-13 17:18
5366

i915可以分成两类;一类是内核态空间下的i915,另一类是用户态空间下的i915。

内核态空间下的i915是英特尔显卡的内核驱动程序。用户态空间下的i915是基于英特尔显卡的mesa实现的。

mesa是基于开源的OpenGL实现的。

DRM的全称是Direct Rendering Manager,它是Linux内核中的子系统;DRM用于将用户态空间下的进程与GPU进行连接。

l  用户态空间下的进程通过DRM给出API与GPU进行通信,用户态下的进程可以通过该API发送命令及数据给GPU、命令GPU做3D渲染的硬件加速及GPU计算等工作。

l  DRM首先是作为X server内核态空间中的组件,但也可以被其他图形堆栈使用。

参见文章https://blog.csdn.net/birdring_0xx0/article/details/118675228

参考文章https://blog.csdn.net/birdring_0xx0/article/details/118674698

参考文章https://blog.csdn.net/birdring_0xx0/article/details/118675731

需要加载的内核模块符号文件:i915.ko。

1.      在命令行内输入lm l,确认需要的符号文件已经加载,如图3.1所示。

图3.1 确认需要的符号文件已经加载

2.      在命令行内输入x i915!*flush_render,查看函数flush_render的信息,如图3.2所示。

图3.2 查看函数flush_render的信息

3.      在命令行内输入bp ffffffff`c07b16b0,给函数flush_render设置断点,如图3.3所示。

图3.3 给函数flush_render设置断点

4.      恢复GDK7,等待断点命中,断点命中后会自动打开函数所在文件,如图3.4所示。

图3.4 命中断点ffffffff`c07b16b0

5.      在命令行内输入lm l,查看已经加载的模块,如图3.5所示。

图3.5 查看已经加载的模块


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-7-13 17:22 被birdring编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//