다음 이전 차례

4. 커널 컴파일

커널 컴파일 환경설정이 모두 끝났다면 컴파일을 시작하기 전에 반드시 청소과 정을 먼저 거쳐야 합니다.

4.1 청소

# cd /usr/src/linux
# make dep
# make clean
make dep : 새 커널 만들기를 시작하는 명령입니다. 컴파일을 위한 의존성 관 계를 설정합니다.

make clean : 이전에 수행했던 컴파일과정에서 생성된 오브젝트 파일(*.[oas ]), 커널, 임시파일(.tmp*), 설정값(configure) 등을 삭제합니다. 다음과 같이 사용하기도 합니다:

make dep;make clean

4.2 커널 컴파일 명령

# make bzImage

make zImage

커널 컴파일이 성공하면 /usr/src/linux/arch/i386/boot 디렉토리에서 커널 이미지 "zImage"를 볼 수 있습니다.

커널에 불필요한 기능까지 모두 집어넣어 커널이 제한된 크기를 넘으면 'SySte m is too big'이라는 에러 메시지를 남기고 컴파일이 실패합니다. 잘 쓰이지 않 는 기능은 모듈로 설정하고, 필요 없는 기능은 제거하여 커널 규모를 줄이고 다 시 컴파일합니다. 새로운 방법은 make bzImage를 이용하는 것입니다.

make bzImage

bzImage도 압축된 커널을 만듭니다. zImage는 1/2MB보다 큰 커널을 지원하지 않지만 bzImage는 1MB보다 위에 직접 커널을 로드하기 위해 기능이 확장되어 커널 크기를 대략 2MB까지 허용합니다. (/usr/src/linux/Documentation/initrd.txt)

만약 "make zImage"로 생성된 커널이 너무 크다면, 그 대신 "make bzImage"를 사용합니다. (/usr/src/linux/RAEDME)커널 컴파일이 성공했다면 /usr/src/linux /arch/i386/boot/디렉토리 아래 bzImage를 찾을 수 있습니다.

make zdisk

명령은 커널 이미지를 플로피 디스크에 만듭니다. 플로피 디스크로 새 커널을 테스트할 때 사용합니다. 커널 이미지를 만들고 lilo 까지 수행하는 'make zlilo' 명령도 있지만 몇 가지 문 제점이 알려져 있어 권장할 방법은 아닙니다.

4.3 모듈 컴파일

모듈 컴파일을 시작하기 전에 이전 버전에서 설치한 모듈을 삭제하는 것이 좋습 니다.

# cd /lib/modules
# rm -rf 2.0.36
# cd /usr/src/linux
# make modules
# make modules_install
# depmod -a 2.2.12
make modules : 커널 환경설정에서 모듈로 설정한 기능들을 컴파일합니다.

make modules_install : 컴파일 된 모듈을 /lib/modules 아래 설치합니다.

depmod : 모듈 사이의 의존성을 검사하여 /lib/modules 디렉토리 아래 modules. dep 파일을 만듭니다.


다음 이전 차례