.config and include/generated/autoconf.h - KAT(4-2)


1 분 소요

What is the autoconf.h?

The autoconf.h is in include/generated/ if your cwd is root directory of kernel source. It consist of C macro definitions like #define CONFIG_SOMETHING 1. You can find this identifier where is in the .config.
= autoconf.h는 커널 디렉토리 밑의 include/generated/에서 볼 수 있다. 이것은 #define CONFIG_SOMETHING 1과 같은 C 매크로 정의로 이루어져 있다. 또한 이 식별자들을 .config에서 찾을 수 있다.

.config is made from Kconfigs or arch/$(ARCH)/defconfig or arch/$(ARCH)/configs/defconfig by doing as follows.
= .config는 다음과 같은 행동을 통해 Kconfig들이나 arch/$(ARCH)/defconfig, arch/$(ARCH)/configs/defconfig으로부터 만들어진다.

$ make defconfig
$ make ARCH=$(ARCH) defconfig
$ make menuconfig
$ make ARCH=$(ARCH) menuconfig
etc..

If you change kernel config for compiling kernel source through the above command, .config is changed to it. Identifier seen in menuconfig is added prefix CONFIG_.
= 커널 컴파일을 위해 커널 설정을 위와 같은 명령을 이용해서 바꾼다면, .config 파일이 바뀌게 된다. 또한, 식별자의 앞에 CONFIG_가 붙는다.

When is the autoconf.h made?

You’ve already make .config, You can do command as follows.
= .config를 만들었다면, 다음과 같은 명령을 수행할 수 있다.

$ make
$ make ARCH=$(ARCH)

It is to compile Kernel source using .config. Command make make include/generated/autoconf.h first. It is important in kernel source because it is global options. = .config파일을 이용해서 커널 소스를 컴파일한다. 명령어 makeinclude/generated/autoconf.h를 먼저 만든다. 이 파일은 커널 소스에서 전역 옵션이기 떄문에 중요하다.

Contents of autoconf.h

If a identifier called SOMETHING exist, a definitions is in autoconf.h as follows
= SOMETHING이라는 식별자가 존재한다면 autoconf.h에는 다음과 같이 정의된다.

  1. A config is get value of yes(y)
     #define CONFIG_SOMETHING 1
    
  2. A config is get value of module(m)
     #define CONFIG_SOMETHING_MODULE 1
    
  3. A config is get value of others
     #define CONFIG_SOMETHING1 "string"
     #define CONFIG_SOMETHING2 0xdead0000
     #define CONFIG_SOMETHING3 123
    

관련 내용에 대한 질문이나 태클을 환영합니다. 댓글 남겨주세요.



태그: ,

카테고리: ,

작성:

업데이트:

댓글남기기