본문 바로가기

리눅스 커널/기타

Kernel module compile

작성한 커널 모듈 소스코드를 컴파일 하는 방법이다.

아래의 Makefile을 참조하면 된다.

 

obj-m 은 모듈 형태로 컴파일 하겠다는 의미로, 컴파일 할 소스코드와 그 이름이 같아야 한다.

커널 소스의 Makefile을 보면 obj-y 가 있는데 이는 obj-m 과 달리 컴파일 할 소스코드를 전체 커널에 합쳐놓은 형태로 컴파일 하겠다는 의미이다. 

 

이어서 PWD 매크로는 현재 작업 디렉토리를 의미하는데, 이 Makefile과 컴파일 할 소스코드를 같이 두도록 해야한다.

KDIR 매크로는 현재 사용 중인 커널 소스 디렉터리를 의미한다. build라는 파일은 심볼릭 링크파일이다.

 

실질적으로 컴파일하는 방법은 default, default1 에 있다.

make의 -C 옵션은 man page 설명을 보면 컴파일 하거나 다른 무엇인가를 하기전에 명시한 디렉터리로 변경하라는 의미인데, 정확한 의미는 잘 모르겠다.

그리고 M과 SUBDIRS 에는 현재 작업 디렉터리 경로를 주는데, 두개의 정확한 의미와 그 차이는 잘 모르겠다.

끝으로 modules라는 명령어 혹은 옵션을 준다(?).

 

컴파일한 모듈을 삭제하는 방법은 컴파일하는 방법과 거의 유사하다,

 

'리눅스 커널 > 기타' 카테고리의 다른 글

dmesg console output  (0) 2021.10.28
칼리 리눅스 커널 컴파일 시 에러에 관해  (0) 2021.10.28
Kernel wait queue  (0) 2021.10.21
Kernel thread & signal  (0) 2021.10.21
Device file  (0) 2021.10.21