谁负责创建"/sys/class/drm“目录结构,更具体地说,”/sys/class/drm/char0-LVDS-1“目录?
我使用的是内核-2.6.38和一个nVidia卡。
发布于 2012-03-30 13:24:17
DRM模块负责SysFS中的子树。您可以在drivers/gpu/drm/drm_sysfs.c中浏览源代码。
子目录是每个连接器,表单card%d-%s的名称由%d替换为索引(我不知道),%s替换为连接器名。
每个设备应该显示5个文件:
对于某些设备,您也将获得子连接器的额外信息。
发布于 2023-04-17 09:57:16
自从上次被接受的答案以来,已经有了一些发展,因此我正在创造一个新的答案。
截至v6.2.11,负责此sysfs子树的源代码仍然是驱动程序/gpu/drm/drm_sysfs.c (工作链接)。
DRM驱动程序本身可以根据硬件支持创建5种不同的入口类型。它们是:card%d,controlD%s,renderD%d,accel%d,然后为每个卡连接器card%d-%s。%d是设备的次要数字,对于卡片,它应该从0开始,然后在controlD、renderD和accel中分别匹配64个增量。没有未成年人为连接器,他们是在各自的卡的未成年人。
controlD条目是由create_compat_control_link()在驱动程序/gpu/drm/drm_drv.c中创建的向后兼容性符号链接。
连接器名称的格式( %s in card%d-%s)是%s-%d,其中%s是驱动程序/gpu/drm/drm_connector.c中struct drm_conn_prop_enum_list drm_connector_enum_list[]的名称,%d是从1开始的连接器索引号(因为卡片可能有多个相同类型的连接器)。
最后,任何驱动程序都可以在这里使用drm_class_device_register()在驱动程序/gpu/drm/drm_sysfs.c中注册自己的设备。
https://unix.stackexchange.com/questions/35381
复制相似问题