drm_core_init
是 Linux 中 DRM(Direct Rendering Manager,直接渲染管理器)框架的一个关键函数。
-
DRM 是 Linux 内核中负责与显卡交互的管理架构。它提供了一组 API,用于访问和操作 GPU(图形处理单元)。DRM 管理着显示输出、缓冲区分配等图形渲染任务。
-
drm_core_init
的作用是初始化全局的 DRM 对象,并使其对驱动程序可用。一旦设置完成,驱动程序可以探测其相应的设备。 -
具体来说,
drm_core_init
的功能包括:- drm_sysfs_init 创建了/dev/drm/version的节点,节点里面的信息是:如:static CLASS_ATTR_STRING(version, S_IRUGO, "drm 1.1.0 20060810");
- debugfs_create_dir 创建了一个debugfs,/sys/kernel/debug/dri
- register_chrdev 创建了一个设备号为226的字符设备 仅仅提供了open 和 llseek的操作。但是他的drm_stub_open函数真的很厉害。
drm_stub_open
是一个占位的open()
回调函数,直接将file和file_openrations替换掉,任何open()
请求转发到注册的次设备号。牛逼大了。