panda.jpg 


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


저번 시간에 일반적인 커널 컴파일을 해보았죠?


오늘은 falinux에서 제공하는 커널을 컴파일 해보겠습니다.


1. 컴파일 방법이 다르다?




자 오늘은 make_s5pv210.sh 파일에 대해서 설명하기로 햇었습니다.


03.JPG 


위에 보이시죠?


한번 파일을 열어 볼까요?


06.JPG


쉘을 작성을 안해보셨기 때문에 뭔가 많이 복잡해 보입니다.


그렇지만 하나하나 따져보고 그냥 그렇구나 하고 넘어가기만 하면됩니다


우리가 원하는건 컴파일 하는 방법일 뿐이니까요 ㅎㅎ


먼저 컴파일 하는것을 볼까요?


 

 ./make_s5pv210.sh                                                                                                                                           

 


요거 하나면 만사 OK 입니다.


위 명령어 하나로 make ezs5pv210_defconfig, make 명령 2가지를 수행 합니다.

(target_filename 에 지정한 위치로 복사까지 해줍니다)


참편리 하죠? 하지만 쉘의 편한점은 이것만이 아닙니다. 


위에 보시면 build_path를 잡아주는것이 보입니다. 


커널을 빌드했을때 나오는 파일들이 모두 위 경로에  저장이 됩니다.


이장점은 하나의  커널을 가지고 여러형태의  빌드 이미지를 만들 수가 있습니다.

(당연 용량은 많이 차지합니다.)


위 build_path의 이름만 변경해 준다면 매번 새로운 빌드이미지가 나오게 됩니다.

(이장점은 혼자보다 여러명이 작업하는경우에 좋다고 생각합니다.)


그럼 확인해 볼까요?


./make_s5pv210.sh 명령을 치시고 한참을 기다리시면 다음과 같이 폴더가 생기고 커널 이미지도 생성이 됩니다.


07.JPG


위와 같이 build_s5pv210 폴더가 생성되어 있을 겁니다.


build_path 값을 변경해주면 해당 파일명으로 생성이 됩니다.

(쉘파일을 복사해서 사용하면 좋습니다.)


참편리하게 만들어져 있습니다.


그럼 간단하게 쉘파일 설명만하고 오늘은 마치도록 하겠습니다.


파일은 6부분으로 나누어져있습니다.


1. PATH 설정(빌드위치, 커널이미지위치, 복사할 위치)

2. .config 파일이 있는지 확인

3. 빌드디렉토리 생성

4. defconfig 설정

5. 빌드

6. 복사


1번은 경로를 지정해 주는겁니다. 필요에 따라  빨간색으로 표시한 부분면 변경해서 사용하시면 될꺼 같습니다.


2번은 현재 커널 포더에 .config파일이 있는지 확인합니다.

 파일이 있다면 make mrproper 를 통해 이전에 설정한 정보를 지웁니다.

이유는 빌드를 현재 커널이 아닌 다른 위치에 하기 때문입니다.


3번 빌드디렉토리를 생성합니다.


4번 make ezs5pv210_defconfig 입니다. 하지만 빌드위치가 병경되기 때문에 3번에서 만든 빌드 디렉토리에

 .config 파일을 생성해 줍니다.


5번 빌드를 시작합니다. make 라고 생각하시면 됩니다. make 에 인자를 넘겨주는 경우도 여기서 실행이 됩니다.

(make menuconfig, make clean 등등)


6번 정해준 위치로 커널 이미지를 복사합니다.


생각보다 알고보면 어렵지 않습니다.


하지만 메뉴얼을 보고서 따라하더라도 일반적인 커널컴파일 방법과 쉘을 이용한 컴파일 방법의 차이를 몰라서


해매시는 분들이 생각보다 많았습니다.


가장 중요한것은 .config의 위치입니다.


쉘을 이용할때는 이 .config파일이 빌드 디렉토리에 위치하게 됩니다.


하지만 일반적인 컴파일방법으로는 현재 커널 위치에 생성이 되지요


요차이로 인해 설정이 저장이 안되고 문제가 많은거 같습니다.


이글을 통해 그 차이를 조금이나마 이해하시고 사용하셨으면 좋겠습니다.


다음 시간에는 커널의 설정에 대해서 한번 이야기 해보도록 하겠습니다.


그럼 다음시간에 만나요~