글
■ 재컴파일 하는 이유는 원하는 버전의 커널을 사용하고, 필요한 기능만 설정하여 가벼운 커널을 만들수 있기 때문이다.
■ 기존의 커널을 변경 , 수정하고 커널 프로그래밍을 하기위해서는 기본적으로 커널을 컴파일하고, 재컴파일된 커널을 시스템에
적용하는 방법을 알아야 한다.
■ 임베디드 시스템을 위한 커널을 호스트에서 만들고자 하는 경우에도 필요하다.
(1) 커널 다운로드
wget <웹주소경로> 명령으로 받을 수 있다
linux-x.y.z.tar.bz2 --> bzip으로 압축된 파일
linux-x.y.z.tar.gz --> gzip으로 압축된 파일
(2) 압축풀기 [ /usr/src/kernel/ 안에 압축을 풀어라~]
---.tar.bz2 --> #tar xvfj ---.tar.bz2 명령으로 압축을 푼다.
---.tar.gz --> #tar xvfz ---.tar.gz 명령으로 압축을 푼다.
(3) 컴파일과정 <Makefile>파일을 이용하여 진행한다.
다음의 make명령어를 사용한다.
======= KERNEL 2.4 virsion =======
#make mrproper ==>커널의 설정값 초기화 [.config파일이 삭제됨]
#make menuconfig/config/xconfig ==>커널을 설정 [.config파일이 생성됨]
#make dep ==>커널설정을 바탕으로 종속성을 검사
#make clean ==>컴파일 과정에서 생긴 오브젝트파일 삭제
#make bzImage ==>실제 커널이미지를 만들기위한 컴파일 과정
#make modules ==>모듈을 컴파일 하는과정 --> 처음 컴파일 시에만 한다
#make modules_install ==>컴파일된 모듈들을 적절한 디렉토리(/lib/modules/'커널')내에 복사
cp arch/i386/boot/bzImage /boot/bzImage-2.4.32 ==>/boot 디렉토리로 커널 이미지 복사
vi /etc/grub.conf 파일 수정 ==> GRUB의 환경설정파일 수정
title <커널 선택시 타이틀>
root (hd0,0)
kernel /boot/vmlinuz-2.4.32-2-386 root=/dev/hda1 ro
initrc /boot/initrd.img-2.4.32-2-386
savedefault
boot
#reboot
======= KERNEL 2.6 vrsion =======
#make mrproper
#make menuconfig/config/xconfig 2.6 버전에서는 #make dep와 #make clean 과정은 필요없다
#make bzImage
#make modules 2.6 버전에서는 #make bzImage 와 #make modules 를 make 명령어로 한번에 끝낼수 있다!
#make modules_install
cp arch/i386/boot/bzImage /boot/bzImage-2.6.14
vi /etc/grub.conf 파일 수정
title <커널 선택시 타이틀>
root (hd0,0)
kernel /boot/vmlinuz-2.6.14 root=/dev/hda1 ro
savedefault
boot
reboot
※ 출처 : http://idkkangjs.blog.me/30091117058
'L inux > Kernel' 카테고리의 다른 글
시스템 콜(System Call) - 2 (1) | 2011.09.26 |
---|---|
시스템 콜(System Call) - 1 (0) | 2011.09.26 |
리눅스 부팅과정 (0) | 2011.09.23 |
리눅스와 리눅스 커널 (0) | 2011.09.21 |
리눅스 커널의 내부구조 (0) | 2011.04.01 |
RECENT COMMENT