CentOS 5.5 최신 커널로 컴파일 하기 Linux



<커널 컴파일 하기>

- Dell Server

- OS : CentOS 5.5 x64

- Kernel : 2.6.18 -> 2.6.36

 

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:40 EST 2010 i686 i686 i386 GNU/Linux

 

1. 커널 컴파일 전에 gcc, ncurses-devel 설치 및 package update

[root@localhost ~]# yum install -y gcc ncurses-devel

[root@localhost ~]# yum update

2. 최신 커널 다운로드(http://www.kernel.org/pub/linux/kernel/v2.6/)

[root@localhost ~]# cd /usr/src

[root@localhost ~]# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.gz

[root@localhost ~]# tar xvfz linux-2.6.36.tar.gz

[root@localhost ~]# ln -s linux-2.6.36 linux

 

3. 커널 컴파일 설정

현재 사용하고 있는 커널 설정으로 컴파일 하기 위해 .config 설정 파일을 복사해서 진행

[root@localhost ~]# cd /usr/src/linux

[root@localhost linux]# make mrproper
[root@localhost linux]# make clean
[root@localhost linux]# cp /boot/config-`uname -r` ./.config
[root@localhost linux]# make menuconfig

  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/basic/hash
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/kxgettext.o
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
/
/
/

 

Load and Alternaate Configuration File -> .config 입력 후 OK 버튼

 

 

General sertup 선택 -> enable deprecated sysfs features to support old userspace tools (NEW) 에서 "y" 키로 선택

                             -> Local Version 선택 후 커널 뒤에 붙을 release 이름 입력(-default를 붙혔다면 2.6.36-default로 생성 됨)

 

설정이 끝났으면 .config 저장 후 Exit 로 종료

 

 

4. 커널 빌드와 설치 진행

[root@localhost linux]# make all

  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig arch/x86/Kconfig
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
  CC      kernel/bounds.s
  GEN     include/generated/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  GEN     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  HOSTCC  scripts/genksyms/genksyms.o
  SHIPPED scripts/genksyms/lex.c
  SHIPPED scripts/genksyms/parse.h
  SHIPPED scripts/genksyms/keywords.c
/

/

/


[root@localhost linux]# make modules_install

[root@localhost linux]# make install

sh /usr/src/linux-2.6.36/arch/x86/boot/install.sh 2.6.36-default arch/x86/boot/bzImage \
                System.map "/boot"

 

[root@localhost linux]#  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 have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0

timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.36-default)
        root (hd0,0)
        kernel /vmlinuz-2.6.36-default ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.36-default.img
title CentOS (2.6.18-194.26.1.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-194.26.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-194.26.1.el5.img
title CentOS (2.6.18-194.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-194.el5.img


새로운 커널을 사용하기 위해 reboot

 

새로운 커널로 부팅 후 커널 버전 확인

[root@localhost ~]# uname -a

Linux localhost.localdomain 2.6.36-default #1 SMP Tue Dec 28 01:27:12 EST 2010 x86_64 x86_64 x86_64 GNU/Linux




덧글

  • Cobrizo 2015/04/28 13:27 # 삭제 답글

    안녕하세요. 제공해주신 진행 순서를 보고 커널을 만드는 부분까지 성공했습니다. 감사합니다.

    그런데 마지막부분인 cat /boot/grub/menu.lst를 입력을 하면
    meun.lst 파일이 없다고 나오는데 제가 어느 부분에서 실수를 했는지 알고싶습니다.

    도와주세요
댓글 입력 영역



통계 위젯 (블랙)

08
90
353737

이 이글루를 링크한 사람 (화이트)

2

google

구글_이글루스_사이드