커널 모듈 세트를 만들고 있습니다. 각 모듈은 자체 프로젝트입니다. 이러한 모듈 중 하나는 여러 하위 모듈에 대한 인터페이스를 제공합니다. 즉. 상위 모듈에는 내보내기가 있고 하위 모듈에는 가져오기가 있습니다.
컴파일되는 커널 코드에는 이미 Module.symvers가 있으므로 상위 모듈을 컴파일하고 삽입하는 데 문제가 없습니다. 그러나 하위 모듈에는 상위 모듈의 헤더 파일(내보내기 설명)이 포함됩니다. 하위 프로젝트의 포함 디렉터리에 복사하는 방식으로 헤더를 만들었습니다. 내 목표는 언젠가 이 상위 모듈이 커널 트리의 일부가 되는 것입니다.
하위 모듈을 삽입할 때 dmesg
확인되지 않은 함수 서명에 대해 불평합니다(정확한 오류 메시지를 기억할 수 없음). 나도 이 문제를 해결하기 위해CopyModule.symvers상위 항목을 하위 항목의 빌드 디렉터리에 빌드할 때 생성됩니다.
Module.symvers 복사가 적용되는 경우 Module.symvers 파일에는 내보낸 기능이 포함된 건물 모듈에 대한 전체 경로가 포함됩니다. 따라서 github/gitlab에서 Module.symvers를 공유하면 프로젝트를 복제하는 모든 사람에게 문제가 발생합니다.
이 상황을 처리하는 가장 좋은/선호되는 방법은 무엇입니까?