리눅스 sysfs 예제

Sysfs 디렉터리 이름 바꾸기 sysfs에서 만든 디렉터리 이름을 바갈 필요가 있는 경우 다음 기능을 사용할 수 있습니다. 기호 링크는 장치가 물리적 장치 트리에 매핑하는 물리적 장치를 가리킵니다. 예를 들어 sda 디스크에 대한 특성은 다음 디렉터리에 있습니다. 트리의 상위 디렉터리kobject 부모로 표시됩니다. 일상적인 sysfs_create_dir()는 부모가 제공되지 않을 때 루트 /sys 바로 아래에 새 디렉토리를 중단합니다. 내가 항상 볼 수있는 하나의 일반적인 리눅스 커널 드라이버 문제는 같은 작업을 수행하여 자신의 코드에 sysfs 파일을 만들려고 드라이버 저자입니다 : 표시 – 파일이 sysfs에서 읽을 때 호출 될 함수에 대한 포인터 , sysfs를 만들고 사용하는 몇 가지 단계가 있습니다. …여기서 kobj는 이름을 바여야 하는 디렉터리에 해당하는 kobject 포인터이며 new_name은 디렉터리에 부여됩니다. sysfs 인터페이스는 일반적으로 직접 호출 되지 않기 때문에 다음 kobject 인터페이스 는 이름 바꾸기 목적을 위해 호출 됩니다: 어디, kobj: 이것은 파일을 만들 수 있는 디렉터리의 kobject에 대 한 포인터입니다. grp: 이 특성 그룹은 생성할 특성 그룹으로, sysfs의 파일로 만들어집니다. /sys/커널/example_dev 디렉토리에서 example_info 파일을 만들려면 다음 sysfs API가 호출됩니다.

모든 모듈이 이미 만든 kobject를 사용하려는 경우 이 참조 수는 증가하며 해당 모듈이 kobject 사용을 중지하려고 할 때마다 참조 수가 감소되어 kobject 또는 sysfs 디렉터리를 사용하여 모듈 수를 유지합니다. kobject로 표현됩니다. 참조 수가 0에 도달할 때마다 kobject_create_and_add에서 할당한 kobject와 관련된 메모리가 해제되고 kobject_create_and_add를 사용하여 kobject가 생성될 때마다 내부적으로 kref 참조 카운터를 하나씩 초기화합니다. 이는 kobject가 현재 모듈에서 사용되고 있음을 나타내고 kobject_create_and_add를 내부적으로 kobject에 대한 디렉토리를 만듭니다. 새 모듈에서 해당 kobject로 표시되는 디렉터리를 사용하려는 경우 참조 카운터를 증분해야 합니다.

This entry was posted in Uncategorized. Bookmark the permalink.

Comments are closed.