/sys/class/drm 디렉토리 구조

/sys/class/drm 디렉토리 구조

"/sys/class/drm" 디렉토리 구조, 특히 "/sys/class/drm/card0-LVDS-1" 디렉토리 생성은 누가 담당합니까?

나는 kernel-2.6.38과 nVidia 카드를 사용하고 있습니다.

답변1

DRM 모듈은 SysFS의 해당 하위 트리를 담당합니다. 해당 소스 코드를 찾아볼 수 있습니다.drivers/gpu/drm/drm_sysfs.c.

하위 디렉터리는 커넥터별로 있으며 형식 이름은 색인(아무것도 모르는)으로 대체되고 card%d-%s커넥터 이름으로 대체됩니다.%d%s

장치당 5개의 파일이 표시되어야 합니다.

  • 연결 상태
  • 활성화(또는 비활성화)
  • DPMS 상태
  • 모드 목록
  • EDID

일부 장치의 경우 하위 커넥터에 대한 추가 정보도 얻을 수 있습니다.

답변2

마지막 답변 이후 약간의 발전이 있었기 때문에 새로운 답변을 만들고 있습니다.

v6.2.11부터 이 sysfs 하위 트리를 담당하는 소스 코드는 여전히드라이버/gpu/drm/drm_sysfs.c(작업 링크).

DRM 드라이버 자체는 하드웨어 지원에 따라 5가지 항목 유형을 생성할 수 있습니다. card%d, controlD%d, renderD%d, accel%d, 각 카드 커넥터에 대한 것 입니다 card%d-%s. 장치 %d부 번호는 카드의 경우 0에서 시작하고 controlD, renderDaccel각각에 대해 64개 증분 단위로 일치해야 합니다. 커넥터에는 미성년자가 없으며 해당 카드의 미성년자에 있습니다.

항목 은 다음 에서 controlD생성된 이전 버전과 호환되는 심볼릭 링크입니다.create_compat_control_link()드라이버/gpu/drm/drm_drv.c에 원래 예약된 마이너 번호를 사용합니다 controlD.

커넥터 이름의 형식( in %s) card%d-%s은 입니다 %s-%d. 여기서 는 in %s의 이름입니다.struct drm_conn_prop_enum_list drm_connector_enum_list[]드라이버/gpu/drm/drm_connector.c%d1부터 시작하는 커넥터 색인 번호입니다(카드에 동일한 유형의 커넥터가 두 개 이상 있을 수 있으므로) .

drm_class_device_register()마지막으로 모든 드라이버는 다음을 사용하여 여기 에 자체 장치를 등록할 수 있습니다.드라이버/gpu/drm/drm_sysfs.c.

관련 정보