이 자료는 (내가만드는 나만의 운영체제 리눅스 커널 프로그래밍
-이준희 지음-) 을 참조해서 작성하였습니다.
일부 내용은 [정성재 강사님]의 파일을 참고 하여 수정 하였습니다.
[06.4.18 임헌정]
http://www.4ellene.net
리눅스커널 프로그래밍을 시작하기 위해 기본 단계로 커널을 컴파일 하는 방법을
정리하려 한다. 물론 모든 옵션을 고려한 Full version이 아닌,
가장 간단한 시스템을 위한 커널 컴파일이며, 각각의 시스템에 맞추어 옵션을 설정하지
못한다면 부팅조차 어려울 것이다.-_-
일단 필요한 커널 소스파일 부터 다운 받도록 한다.
http://www.kernel.org 에서 최신 버전으로 다운 받도록 하는데, 2.6과 2.4 버전이
눈에 들어올 것이다. 2.6이 최신 버전이긴 하지만 일단은 2.4버전을 받도록 한다.
1. /usr/src/linux 에 소스파일을 다운 받는다.
물론 압축도 풀어준다.
2. make mrproper
기존에 설정되어 있던 커널 옵션들을 초기화 시켜주는 명령이다.
.config 파일을 삭제하게 되므로 신중히 실행하도록 한다.
(이전 설정을 지워버리므로 실패했을때 돌아갈 곳이 없으진다는..ㅋ)
3. make menuconfig
메뉴형식으로 커널 옵션을 설정해주는 명령이다.
이외에도 xconfig, config 등이 있으나 가장 편리한 듯 하니 이 명령을 사용하자.
* ncurses-dev 다운 받기
ftp://rpmfind.net/linux/redhat-archive/7.3/en/os/i386/RedHat/RPMS/ncurses-devel-5.2-26.i386.rpm
그외 배포판 다운 받기 : www.rpmfind.net -> 키워드 : ncurses-dev
*ncurses와 버젼 맞게 다운 받아 설치 하기
Redhat 9.0 : ftp://195.220.108.108/linux/redhat-archive/9/en/os/i386/RedHat/RPMS/ncurses-devel-5.3-4.i386.rpm
ftp://rpmfind.net/linux/redhat-archive/7.3/en/os/i386/RedHat/RPMS/ncurses-devel-5.2-26.i386.rpm
그외 배포판 다운 받기 : www.rpmfind.net -> 키워드 : ncurses-dev
*ncurses와 버젼 맞게 다운 받아 설치 하기
Redhat 9.0 : ftp://195.220.108.108/linux/redhat-archive/9/en/os/i386/RedHat/RPMS/ncurses-devel-5.3-4.i386.rpm
4. make dep
소스간의 의존성 검사.
... 소스간에 충돌 유무를 조사한다고 생각하면 이상무.
5. make clean
기존 컴파일시 생성된 오브젝트 파일이나 생성된 기타 파일을 삭제한다.
물론 커널 컴파일시 항상 해줄 필요는 없고, 참조정보가 깨지거나 문제가
생겼을 경우 실행하면 된다.
6. make bzImage
실제 커널 이미지를 만들기위한 컴파일 명령이다. zImage와 bzImage 두 가지의 방법이
있고, 이미지의 용량이 1Mb가 넘어갈 경우 bzImage를 사용한다. (대부분..)
7. make modules
옵션에서 설정한 모듈들을 컴파일 하는 명령어 이다. 커널을 설치할 때만 실행하면 되고,
이후, 커널을 수정한 후에는 위의 bzImage만 make 하면 된다.
8. make modules_install
각각 컴파일된 모듈을 적재적소에 파견한다고 생각하면 된다.
9. make install
커널 이미지 생성및 grub파일 수정
/sbin/installkernel 파일이 존재 하여야함
10. 재부팅

Comments List
의존성 검사 에러 메시지 저장
make dep 1>/dev/null 2> dep_error.txt
컴파일 좀더 빨리 하기
time nice --20 make install modules modules_install
time은 시간을 측정, nice --20은 우선순위를 최 우선