makefile 없이 커널 모듈을 컴파일하는 방법은 무엇입니까?

makefile 없이 커널 모듈을 컴파일하는 방법은 무엇입니까?

makefile 없이 커널 모듈을 컴파일하는 것이 가능합니까? 그렇다면 어떻게 컴파일하나요?

답변1

아니요, 모듈을 컴파일하는 데 사용해야 하는 커널 Makefile이 다른 정의를 호출해야 하기 때문에 이는 불가능합니다 obj-m.

트리 외부 모듈에 대한 일반적인 Makefile은 다음과 같습니다.

ifneq ($(KERNELRELEASE),)
obj-m := mymodule.o
else
KDIR := /lib/modules/`uname -r`/build

all:
        $(MAKE) -C $(KDIR) M=$$PWD
endif

처음 호출되면 KERNELRELEASE정의가 없으며 커널 Makefile이 매개변수와 함께 호출됩니다 M=$$PWD. 마지막으로 커널 Makefile이 사용되며 M다시 Makefile 모듈을 찾아 호출합니다. 이번에는 KERNELRELEASE정의 및 obj-m이 채워집니다. 그러면 모듈이 컴파일됩니다.

관련 정보