了解 Linux 内核驱动程序

Posted

技术标签:

【中文标题】了解 Linux 内核驱动程序【英文标题】:Understanding Linux Kernel drivers 【发布时间】:2014-02-05 16:17:42 【问题描述】:

在从源代码构建 Linux 内核时,我注意到它也在构建一些驱动程序(例如,drivers/gpu/drm/i915 或 nouveau 等)。 另一方面,在我的系统上,我还安装了 xserver-xorg-video-intel 软件包(Ubuntu)。所以问题是:xser​​ver-xorg-video-intel 驱动程序如何与内核中的驱动程序/gpu/drm/i915 一起使用?它们是具有不同目的的两个独立的东西吗(例如第二个仅适用于 X11)?

【问题讨论】:

DRM 部分只做一些基本的事情:模式设置,分配命令环形缓冲区,等待 vsync,...,而 X11 部分使用它:例如它从 DRM 请求一个命令环形缓冲区,用命令填充它,然后将其发送给 GPU。 【参考方案1】:

Linux 图形堆栈是一个广泛而复杂的生态系统。

你有一个总体概述here:

或者更多来自 Stephane Marchesin 的 complete and technical one,它是新晋黑客之一。

基本上,图形工具包(Qt、Gtk、efl 等)与 Xorg 对话。 XOrg 使用 libdrm 与内核 DRM 基础架构进行交互,该基础架构基于和抽象显卡驱动程序(nouveau、i915、..)。

【讨论】:

哇!感谢您的回答! 请注意这是一个简化的答案:) 是的,但这对我来说已经足够了!

以上是关于了解 Linux 内核驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

如何编译一个linux下的驱动模块

求教怎么学习linux内核驱动

#星光计划2.0# linux内核增加HDF驱动子系统

Linux内核开发与Linux驱动开发有啥关系?

linux内核驱动module_init解析

linux内核makefile概览