>

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

작동 원리 :

  • 커널과 rootfs를 빌드하고 Raspberry Pi를 부팅 할 수 있습니다.
  • BuildRoot 툴체인을 일반 패키지 또는 autotools-package로 사용하여 "hello world"를 빌드/리빌드 할 수 있습니다.

작동하지 않는 것 :

  • 예 : linux/module.h와 같은 일부 커널 헤더를 포함 할 수 없습니다. 툴체인이이 헤더 파일을 찾지 못했습니다.

출력/스테이징/usr/include를 살펴 보았습니다. linux/net.h와 같은 리눅스 헤더를 찾을 수 있습니다. 그러나 linux/module.h와 같은 다른 것들도 없습니다.

찾고있는 헤더가 커널 소스 트리에 있습니다. 그러나 스테이징에 설치되지 않은 것 같습니다. BuildRoot가 "make headers_install"이라고 100 % 확신하지는 않지만 합리적인 가정으로 보입니다. "make headers_install"이 설치할 헤더를 선택하는 방법에 대한 포인터가 있습니까? 아니면 다른 것을 놓치고 있습니까?

  • 답변 # 1

    <시간> 와이즈 비즈 커널 모듈 : 'make'명령에는 "internals"가 있습니다. 특수»커널 모듈 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

    패키지 유형

    I cannot include some kernel headers, for instance linux/module.h. The toolchain does not find this header file.

     기본적으로 우리를 위해 모든 것을 설정합니다.

    $(eval $(kernel-module))

  • 이전 shell - STDIN이 열려 있는지 정기적으로 확인하는 방법은 무엇입니까?
  • 다음 software installation - RHEL 6에서 사전 패키지 된 Emacs 25를 어떻게 설치할 수 있습니까?