Linux에서 .ko 파일을 만드는 방법

Linux에서 .ko 파일을 만드는 방법

Linux에서 장치용 드라이버를 작성했습니다. 커널에 삽입할 수 있도록 파일을 생성(사용 gcc) 하는 방법은 무엇입니까 ?.ko

답변1

Makefile이와 같은 것을 만드십시오 .

ifneq ($(KERNELRELEASE),)
obj-m   := mymodule.o
else
KDIR    := /lib/modules/$(shell uname -r)/build
PWD     := $(shell pwd)
all:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
install:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules_install
%:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $@
endif

모듈의 소스 코드가 있다고 가정하면 mymodule.c실행하면 make가 생성됩니다 mymodule.ko.

답변2

짧은 대답: 할 수 없습니다. .ko 파일은 드라이버 소스의 컴파일된 버전이 아닙니다. 커널 빌드 시스템에는 (컴파일러 버전, 모듈 종속성...)과 같은 몇 가지 추가 정보가 포함되어 있습니다.

필요한 모든 작업을 찾기 위해 커널 빌드 시스템을 자세히 조사할 수도 있지만 그렇게 해서는 안 됩니다. 다음 커널 버전 이상에서는 거의 확실하게 중단될 것입니다. 제공된 makefile ehemient를 사용해야 합니다.

관련 정보