장발의 개발러

[CentOS] 커널 컴파일 본문

개발이즈 마이라이프/OS

[CentOS] 커널 컴파일

장발의 개발러 2012. 5. 23. 16:52



출처: http://www.cyworld.com/ruo91/2970971


이 글은 CentOS 5.3 에서 커널 컴파일 하는 방법을 적었습니다.

커널 컴파일을 하기 위해선 gcc, ncurses-devel 가 설치 되어 있어야 합니다.
[root@ruo91 ~]# yum install -y gcc ncurses-devel

1. 커널 버전 다운로드
아래 주소에서 최신 커널을 다운로드 합니다.
http://www.kernel.org/pub/linux/kernel/v2.6/

압축푼 디렉토리를 linux 라는 이름으로 심볼링크를 걸어줍니다.
[root@ruo91 ~]# cd /usr/src
[root@ruo91 ~]# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.5.tar.gz
[root@ruo91 ~]# tar xzvf linux-2.6.30.5.tar.gz
[root@ruo91 ~]# ln -s linux-2.6.30.5 linux

2. 커널 컴파일
현재 사용하고 있는 커널 설정 기반으로 커널 컴파일 하기 위해 .config 설정 파일을 복사해서 진행합니다.
[root@ruo91 ~]# cd /usr/src/linux
[root@ruo91 ~]# make clean
[root@ruo91 ~]# cp /boot/config-`uname -r` ./.config
[root@ruo91 ~]# make menuconfig

기존에 사용하던 .config 를 사용하기 위해 설정파일을 불러옵니다.

 


General setup 에 들어갑니다.


Local version 에 엔터를 눌러 줍니다.

커널버전 뒤에 사용할 릴리즈 이름을 적어줍니다.

예) -default 로 적었다면 새로운 커널이 생성될때 2.6.30.5-default 로 생성 될것입니다.

 

 

설정이 끝나면 Exit 로 메뉴를 빠져 나옵니다.

 

변경된 설정파일 .config 를 저장해줍니다.



저장 완료후 Exit 로 메뉴에서 빠져 나옵니다. 

 

커널 빌드와 설치를 해줍니다. Vmware 에서 대략 1시간 40분 정도가 소요 됬습니다.

[root@ruo91 ~]# make all ; make modules_install ; make install


빌드와 설치가 정상적으로 되었다면 grub 부트 메뉴에 아래와 같이 새로운 커널이 올라와 있는걸 볼수 있습니다.

[root@ruo91 ~]# cat /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,0)
#          kernel /boot/vmlinuz-version ro root=/dev/sda1
#          initrd /boot/initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.30.5-default)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.30.5-default ro root=LABEL=/
        initrd /boot/initrd-2.6.30.5-default.img
title CentOS (2.6.18-128.el5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-128.el5 ro root=LABEL=/
        initrd /boot/initrd-2.6.18-128.el5.img


새로운 커널을 사용하기 위해 재부팅을 해줍니다.

[root@ruo91 ~]# shutdown -r now


grub 부트 로더에서 새로운 커널이 올라 왔음을 볼수 있습니다.


정상적으로 커널 컴파일이 됬네요


참고
http://www.howtoforge.org/kernel_compilation_centos
http://www.howtoforge.org/kernel_compilation_centos_p2