작성한 커널 모듈 소스코드를 컴파일 하는 방법이다.
아래의 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 |