2013-01-16 3 views
2

저는 커널 프로그래밍을 처음 사용합니다. 내가 module_param을 통과 할 때, 나는 허가 값 0에 혼란스러워했습니다. sysfs에 엔트리를 얻지 못할 것이고 다른 사람들은 S_IRUGO과 같은 엔트리를 얻을 것이라고 설명했습니다. 나는 그 개념을 이해할 수 없었다.모듈 매개 변수 사용 권한

perm 값 0은 무엇을 나타 냅니까? sysfs 항목은 언제 필요합니까? 그 필요성은 무엇입니까?

친절하게 안내해드립니다. 미리 감사드립니다.

답변

3

매개 변수를 커널 모듈에 모듈화 할 수 있습니다. bar라는 매개 변수를 사용하여 커널 모듈 foo 가정 :

  • 를 부트 로더 구성으로 제공 될 수있는 커널 명령 줄을 사용하여. 현재 부팅에 대한 명령 줄을 보려면 cat /proc/cmdline을 실행하십시오. 출력 예 : BOOT_IMAGE=/vmlinuz root=/dev/sda1 foo.bar=some-value
  • insmod 또는 modprobe : modprobe foo bar=some-value을 사용하여 커널 모듈을로드하는 중.
  • 모듈이로드되면 foo 모듈의 bar 매개 변수는 /sys/module/foo/parameters/bar에 있습니다.

허용 값이 0이면 sysfs 항목이 만들어지지 않습니다 (위의 세 번째 글 머리 기호). 커널 코드의 사용 예는 sysfs에서이 매개 변수를 표시하지 않고 디버그를 활성화하는 것입니다.

읽기/쓰기 가능한 모듈 매개 변수의 예는 acpi입니다. 생성되어야하는 디버깅 정보를 동적으로 설정할 수 있습니다. 커널 명령 행에 대해 acpi.debug_level 또는 /sys/module/acpi/parameters/debug_level sysfs 항목으로 사용할 수 있습니다.