커널 모듈 개발을 위해 Buildroot를 사용하여 커널 개발 헤더 파일을 설치하는 방법은 무엇입니까?

커널 모듈 개발을 위해 Buildroot를 사용하여 커널 개발 헤더 파일을 설치하는 방법은 무엇입니까?

일부 Rasperry Pi C/C++ 커널 모듈 개발에 BuildRoot 2015.08.1을 사용할 계획입니다.

작동하는 것:

  • 커널과 rootfs를 빌드하고 Raspberry Pi를 부팅할 수 있습니다.
  • BuildRoot 도구 체인을 범용 패키지 또는 자동화 도구 키트로 사용하여 "hello world"를 빌드/재구축할 수 있습니다.

잘못된 방법:

  • linux/module.h와 같은 특정 커널 헤더 파일을 포함할 수 없습니다. 툴체인에서 이 헤더 파일을 찾을 수 없습니다.

출력/스테이징/usr/include를 살펴보았습니다. linux/net.h와 같은 일부 Linux 헤더 파일을 찾을 수 있습니다. 그러나 linux/module.h와 같은 다른 것들은 존재하지 않습니다.

내가 찾고 있는 헤더가 커널 소스 트리에 존재합니다. 하지만 무대 공간에는 설치되지 않은 것 같습니다. BuildRoot가 "make headers_install"을 호출하는지 100% 확신할 수는 없지만 합리적인 가정인 것 같습니다. "make headers_install"이 설치할 헤더를 선택하는 방법을 아는 사람이 있나요? 아니면 다른 것을 놓치고 있습니까?

답변1


linux/module.h와 같은 특정 커널 헤더 파일을 포함할 수 없습니다. 툴체인에서 이 헤더 파일을 찾을 수 없습니다.

커널 모듈: "make" 명령에는 이를 수행하는 "내부"가 있습니다. (만) 특수 »를 사용하는 경우커널 모듈 Makefile« → →

https://stackoverflow.com/questions/33589276/linux-kernel-module-compilation/33589361#33589361


답변2

다음은 커널 모듈에 대한 완전히 자동화된 트리 외부 설정입니다:https://github.com/cirosantilli/linux-kernel-module-cheat/blob/b89ba9b799480e4eb1975f0a704409efb7d667d1/kernel_module/external.mk

여기에 최소한의 버전을 설명했습니다.https://stackoverflow.com/questions/40307328/how-to-add-a-linux-kernel-driver-module-as-a-buildroot-package/43874273#43874273

패키지 유형은 $(eval $(kernel-module))기본적으로 모든 것을 설정합니다.

관련 정보