panda.jpg 


안녕하세요 판다 이우영입니다.


자 오늘부터 잡담은 그만하고 본론에 들어가겠습니다.


일단 최대한 간단간다하게 쓰도록하겠습니다.


1. 커널 컴파일 어떻게 해야하나요?




자 오늘은 g100-s5pv210 보드에 부트로더와 커널을 올리기 위한 과정을 이야기 하려 합니다.


이 과정에서도 우리가 모르는 무수한 자료들이 존재 하지만


뉴비에게 필요한 정도는 아니죠!!


자 그럼 필요한것은?  무조껀 에러없이 컴파일성공!! 하는겁니다.


그럼 먼저 컴파일하는 방법부터 간단하게만 확인하고 넘어가겠습니다.


리눅스에서  컴파일을 해보신적이 있으신가요?


  gcc [c파일] -o [실행파일]                                                                                                                       


처음 배울때는 간단하죠?


하지만 여러 파일을 같이 컴파일을 하기 위해서는 조금 불편해지기 시작합니다.


그래서 보통 Makefile을 만들어서 컴파일을 하기 시작합니다.


Makefile <- 요 이름의 파일을 만드신후 make라는 명령을 내리면 Makefile에 정해진 방법에 따라서 


컴파일이 됩니다. 이를 이용하면 여러 파일을 컴파일 하거나 합치거나 아주 많은 일들을 할수 있습니다.


하지만! Makefile 만 설명해도 책한권이 뚝딱 나올만한 분량이랍니다.


그러니 요건 패스~ 우리가 중요한건! 에러없이 컴파일 성공하는 거였죠?


자 그럼 우리는 방금 Makefile 이 있을경우 make라는 명령을 통해 컴파일 한다는 것을 배웠습니다.

(요것이 중요한거죠!!)


그럼 커널을 한번 빌드해 보겠습니다.


먼저 일반적으로 처음 커널을 컴파일 하기위한 과정을 순서대로 알아보겠습니다.


먼저 다운로드 혹은 CD에서 복사한 압축파일을 풀어주세요


압축에 관해서는 요점에서 멀어지느 패스~

(명령어를 모르신다면 메뉴얼 확인! 혹은 인터넷 검색!  키워드 [tar 압축])


그럼 다음과 같은 파일들이 보입니다.


03.JPG


오 방금 배운 Makefile이 보입니다. 그럼 당장 make를 처보시는분들! 모든일이 그렇게 쉽게 풀리는 것이 아닙니다!!


커널은 워낙 덩치가 크고 복잡한 놈이기 때문에 해주어야 할 작업이 더 필요합니다.


 make distclean                                                                                                                                         

 make xxx_defconfig

 make  


2가지가 보입니다.


건단하게 설명을 해보겠습니다.


make distclean은 커널을 빌드했을때 만들어지는 모든 파일을 제거 한다고 생각 하시면됩니다.

(.o 파일, 링크파일, 등등 각종 생성물들..)


위 명령을 해줌으로써 커널을 깨끗한 상태로 만들어 줍니다.


자 다음 명령입니다. 


이 명령은 해당 보드에 필요한 설정을 로드하는 작업입니다.


뒤에 xxx_defconfig 파일이 설정이 저장된 파일입니다.


파일은 /arch/arm/config 에 있습니다.


05.JPG


확인해 보시면 파일이 엄청 많습니다.


그중 우리가 필요한건 ezs5pv210_defconfig 인걸로 보입니다.


그리고 make 명령을 주시면 컴파일을 시작합니다.


위 과정이 일반적인 커널 컴파일 과정입니다.


일반적인 커널 컴파일 방법으로 다시 정리를 해본다면


make distclean

make ezs5pv210_defconfig

make


위와같이 하면 컴파일이 될것으로 보입니다.


어렵진 않죠? 물론 처음이라면 많이 당황스러운 작업입니다 ㅎㅎ.


Makefile이 참 신기하죠? 원리가 궁금하다고 커널의 Makefile을 열어보신다면 바로 좌절하게 되실겁니다.

(열어보시면 왜 그런지 아실 겁니다 ㅎㅎ Makefile은 다른방법으로 차근차근 공부하시는 것이 좋아 보입니다.)


하지만 여기서 끝이 아닙니다. 위과정에서 빠진 사전작업이 있습니다.


바로 크로스 컴파일러 입니다. 메뉴얼을 따라 제대로 설치했다면 문제가 없을 수 있으나


크로스컴파일러, PATH, 등등의 설정이 제대로 안되어 있다면 컴파일이 안될 수있습니다.


하지만 이런것은 처음하는 사람에게는 매우 당황스러운 상황입니다.


이렇기 때문에 make_s5pv210.sh 파일을 제공합니다.

(이유는 여러가지이지만 요 sh파일을 잘 활용한다면 Makefile과 더불어 매우 많은 다양성을 제공해 줄 수 있습니다.)


오늘 글을 쓴 이유이기도 합니다만 위 설명을 하다보니 글이 많이 늘어났내요 ㅎㅎ


make_s5pv210.sh 에 대한 설명은 다음으로 미뤄야 할꺼 같습니다.


그래도 오늘 배운 내용만으로도 다른 보드의 커널을 컴파일 하실때 문제는 없을 것으로 보입니다.

(하지만 다시보니 빠진 내용이 있는거 같습니다 ㅎㅎ 요건 다음시간에 같이 설명 하도록 하겠습니다.)


그럼 오늘은 여기까지! 입니다.


다음시간에 만나요~~