"커널 소스 코드 분석 (가) 구성 및 컴파일 과정."

1. 커널 설정 및 컴파일

CP 아치 / 팔 / CONFIGS은 / xx_defconfig의 .config 
menuconfig를 만들 
uImage을

 

2. 커널 설정 및 컴파일 과정을 이해

  커널의 구성 중, 그것은 파일의 .config을 생성합니다.

  예를 들어 카드에 DM9000 :

  의 .config에서 "CONFIG_DM9000 = Y"에서 찾을 수 있습니다, 이것은이 모듈이 커널에 컴파일된다는 것을 의미합니다. 파일 .ko 블록으로 컴파일한다 "= m CONFIG_DM9000은"커널에 동적으로로드 될 수있다.

  CONFIG_DM9000는 최상위 디렉토리의 커널을 찾을 수 있습니다 :

GREP은 " CONFIG_DM9000 "   을 포함 아래 -rn은. 왜 어떤 조언을 찾을 수 없습니다

  네 개의 문서가 알 수있는 바와 같이 ARM 아키텍처에 포함

  • 아치 / ARM / 도면 되었음 - s3c24xx / commod-smdk.c (源 C)
  • 드라이버 / 그물 / 메이크 (하위 디렉토리 메이크)
  • / 설정 / auto.confg 포함
  • / 리눅스 / autoconf.h 포함

  오픈 / 드라이버 / 그물 / Makefie. 당신은 "- $ (CONFIG_DM9000) + = dm9000.o OBJ"찾을 수 있습니다. $ (CONFIG_DM9000)는 정의 CONFIG_DM9000이 dm9000.o를 컴파일 할 것인지 여부를 결정하는 것을 의미한다. 매크로 정의하면서 Auto.conf는 auto.conf에서 "CONFIG_DM9000 = Y"는 OBJ-Y + = dm9000.o로 확장 될 수 있도록 메이크를 볼 수있다. 이 모듈이 커널에 컴파일 된 것을 의미한다. "CONFIG_DM9000 = m"경우 모듈 .ko 파일로 컴파일된다. auto.conf 결국 최상위 메이크 파일에 포함됩니다.

  따라서, / 구성 / auto.conf 매크로는 메이크 내에 정의되어 있습니다.

  헤더 파일을 autoconf.h, 그래서는 C 소스가 사용되는 것은 분명하다. 다양한 매크로 정의의 정의가있다.

  autoconf.h 및 auto.conf가 menuconfig를 만들 때 발생합니다.

  요약 : 만들 menuconfig를 -----> auto.conf 및 autoconf.h를 생성

     auto.conf -----> 모듈을 컴파일 할 수 있는지 여부를 결정하는 메이크 (Y는 커널로 컴파일 될 때이 때 m은 컴파일 된 모듈이다)

     autoconf.h -----> C는 소스 시간 소스 매크로 정의는 해당 정의

 

추천

출처www.cnblogs.com/zhuangquan/p/11461249.html