"modinfo --field"에 가능한 값은 무엇입니까?

"modinfo --field"에 가능한 값은 무엇입니까?

modinfo --field"저자", "설명" 등과 같은 필드를 필터링할 수 있습니다.

질문: 가능한 값의 전체 목록은 어디서 찾을 수 있나요?--field

내가 지금까지 시도한 것 :

  • man 8 modinfo일부 "공통 영역"이 언급되어 "아마도 당신이 찾고 있는 것이 무엇인지 가장 잘 알고 있을 것입니다"라고 생각하게 되었습니다.
  • grep을 통해 소스 코드를 탐색하면서 를 제외하고는 거의 아무것도 발견하지 못했습니다 ./kmod-9/tools/modinfo.c. 이는 C에 문맹이기 때문에 별로 도움이 되지 않습니다(예, 전체 kmod패키지를 조사하여 꽤 많은 용어를 찾았습니다).
  • 커널 모듈 프로그래밍 가이드: 위 항목 참조
  • 제가 중요한 걸 놓쳤을 수도 있겠네요...

답변1

modinfo.modinfo커널 모듈 섹션에서 정보를 추출합니다. 커널 모듈 작성자가 다음과 같은 섹션을 추가했기 때문에 이 정보는 일반적으로 이 섹션에 나타납니다.

MODULE_DESCRIPTION("Joe's awesome driver");
MODULE_AUTHOR("Joe Blow<[email protected]>");
MODULE_LICENSE("GPL");

아마도 이 점은 분명할 것입니다. 그러나 요점은 드라이버 작성자가 원하는 자유 형식 정보를 추가할 수 있으므로 명시적인 목록이 없다는 것입니다. 예를 들면 다음과 같습니다.

MODULE_INFO(my_cool_field, "Wow, so cool");

몇 가지 공통 영역이 있습니다.

그리고 위의 또 다른 점은 프로그램이 modinfo어떤 필드가 있는지 알지 못한다는 것입니다. 단지 .modinfo섹션 모듈에서 해당 필드를 검색할 뿐입니다.

후속 조치: Linux 소스에서 include/linux/module.h를 검색하면 다음 매크로가 정의되어 있는 것을 볼 수 있습니다.

#define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias)
#define MODULE_LICENSE(_license) MODULE_INFO(license, _license)
#define MODULE_AUTHOR(_author) MODULE_INFO(author, _author)
#define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description)
#define MODULE_VERSION(_version) MODULE_INFO(version, _version)
#define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware)

관련 정보