Embedded : : Linux/: : Linux Kernel

[Linux Kernel] configuration file

Jay.P Morgan 2024. 10. 31. 23:38

 

  1.  configuration file

 

 

  1.1  intro

Linux kernel에 관계된 directory들에는 Kconfig와 makefile이 함께 존재한다.

※  Makefile : 파일을 생성하는 스크립트.

obj-변수(CONFIG_XX_*) 의 값이 y라면 해당 *.o 파일을 오브젝트 파일로 만들겠다.

변수 위치 : 최상위 디렉터리 안 (Kconfig를 참고해 .config 파일은 자동으로 생성됨)

obj-$(CONFIG_FOO) += foo.o # CONFIG_FOO의 값이 y라면 해당 *.o 파일을 오브젝트 파일로 만들겠다는 뜻임

 

  1.2  Kconfig

Kconfig: kernel에 대한 설정에 대해 정의되어있는 파일을 의미

make menuconfig를 했을 때, 보이는 화면은 Kconfig파일에 대한 내용들이다.

 

config FOO bool "Enable FOO driver" defalut y help Adds ~~~~~~~~~~~~. default is n. # 이렇게 정의해놓으면 CONFIG_FOO 변수가 자동 생성됨

  1.3  defconfig

defconfig: driver 단의 Makefile을 보면 아래 같이 작성되어 있는 것을 볼 수 있다.

그런데 menuconfig를 사용해 일일히 설정하지 않고, defconfig라는 것에 필요한 설정들을 정의해 놓고 사용 할 수있다.

CONFIG_FOO=y #built-in CONFIG_FOO=m #module

  1.4  .config

.config: make menuconfig 파일 기반으로 생성된다.

make menuconfig를 하면 기본적으로 arch에 맞는 defconfig를 가져와서 세팅한 후, 사용자의 추가 세팅을 받아서 최종 .config 파일이 완성된다.

.config 파일이 최종적으로 빌드 시 사용된다.