Linux 커널 모듈 개발 빌드루트

Linux 커널 모듈 개발 빌드루트

나는 buildroot를 사용하여 beaglebone black용 Linux 커널을 구축했습니다. 이제 Hello World Linux 커널 모듈 애플리케이션을 개발하고 싶습니다.

#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
    printk(KERN_ALERT "Hello, world\n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);

문제는 일부 헤더 파일이 아직 누락되었다는 것입니다. 마침내 모든 것을 수집한 후 코드를 컴파일할 수 없다는 오류가 발생합니다(오류가 너무 많아서 모두 붙여넣고 싶지 않습니다). 내가 알고 싶은 것은 실제로 올바른 파일을 포함하고 있는지입니다. 현재 나는 다음을 가지고 있습니다:

/home/lukasz/brl/Machine/beaglebone/build/linux-headers-a75d8e93056181d512f6c818e8627bd4554aaf92/include
/home/lukasz/brl/Machine/beaglebone/build/uboot-2018.01/arch/x86/include
/home/lukasz/brl/Machine/beaglebone/build/linux-headers-a75d8e93056181d512f6c818e8627bd4554aaf92/arch/arm/include/generated
/home/lukasz/brl/Machine/beaglebone/build/linux-headers-a75d8e93056181d512f6c818e8627bd4554aaf92/arch/arm/include
/home/lukasz/brl/Machine/beaglebone/build/linux-a75d8e93056181d512f6c818e8627bd4554aaf92/include

c 포함 파일과 asm 파일이 디렉토리 전체에 흩어져 있다는 것이 나에게는 조금 이상합니다.

내 리눅스 버전:

# uname -a
Linux buildroot 4.9.59 #1 SMP Fri Oct 5 11:55:54 CEST 2018 armv7l GNU/Linux

답변1

Linux 커널 모듈을 빌드하는 방법에 대한 세부 정보를 충분히 제공하지 않았습니다. 다음 지침을 따르십시오.https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/kbuild/modules.txt커널 모듈을 빌드하는 방법을 알아보세요.

관련 정보