2011년 1월 1일 토요일

kernel 컴파일

출처 wzblue님의 블로그 | 암흑햏자
원문 http://blog.naver.com/wzblue/10011487808
1. 커널(kernel) 컴파일
         └─> ┌ H/W의 정보
                     └ OS의 기능


2. linux 커널 버전의 의미
   2.    6.     9
  │    │    └─> 패치버전
  │    └─> 중분류 -> 홀수 : 시험버전,    짝수 : 안정버전
  └─> 대분류


3. 커널버전 파악
[root@lace ~]# uname -a
Linux lace.ace.net 2.6.9-71hs #1 Tue Nov 9 14:42:13 KST 2004 i686 i686 i386 GNU/Linux
[root@lace ~]# ls /boot
System.map-2.6.9-71hs grub                  vmlinuz-2.6.9-71hs
config-2.6.9-71hs      initrd-2.6.9-71hs.img
[root@lace ~]#


4. 커널 컴파일 방법
   1) 커널 source download
         => www.kernel.org
                ┌ 커널 : linux ... ...
                └ 패치 : patch ... ...
         download후 파일을 /usr/src로 이동

   2) 압축 해제  => 압축을 푼 디렉토리로 경로 이동
[root@lace ~]# cp linux-2.6.19.tar.gz /usr/src
[root@lace ~]# cd /usr/src
[root@lace src]# ll
합계 52576
drwxr-xr-x   7 root root     4096 11월  8 11:49 Haansoft
-rw-r--r--   1 root root 53768961 12월  5 10:11 linux-2.6.19.tar.gz
drwxr-xr-x  19 root root     4096 11월  8 11:59 linux-2.6.9-71hs
[root@lace src]# tar xvzf linux-2.6.19.tar.gz              ===> 파일 압축해제
       ... ... 
linux-2.6.19/usr/gen_init_cpio.c
linux-2.6.19/usr/initramfs_data.S
[root@lace src]# ll
합계 52584
drwxr-xr-x   7 root root     4096 11월  8 11:49 Haansoft
drwxr-xr-x  19 root root     4096 11월 30 06:57 linux-2.6.19
-rw-r--r--   1 root root 53768961 12월  5 10:11 linux-2.6.19.tar.gz
drwxr-xr-x  19 root root     4096 11월  8 11:59 linux-2.6.9-71hs
-rw-rw-rw-   1 root root       52 11월 30 06:57 pax_global_header
[root@lace src]#        
            ※ changes 파일 보기 => 컴파일에 필요한 프로그램 정보
[root@lace src]# cd linux-2.6.19
[root@lace linux-2.6.19]# ll
[root@lace linux-2.6.19]# vi Documentation/Changes

[root@lace linux-2.6.19]# rpm -qa|grepgcc               ===> 현재 자신의 gcc버전 확인
libgcc-3.4.1-7
compat-gcc-c++-8-3.3.4.2
gcc-gnat-3.4.1-7
compat-gcc-8-3.3.4.2
gcc-3.4.1-7
gcc-g77-3.4.1-7
gcc-objc-3.4.1-7
gcc-c++-3.4.1-7
[root@lace linux-2.6.19]# 

   3) 커널 환경 설정
         ┌ makeconfig             ┐        콘솔환경
         │ make menuconfig   ┘
         │ make xconfig
         └ make gconfig
[root@lace linux-2.6.19]# make gconfig        ===> 이 곳에서 설정을 하거나 다른사람이 만들어 놓은
                                                        설정 파일(.config => make oldconfig)을 복사해서 사용하여도 된다.

   4) 커널 생성(커널 컴파일)
[root@lacelinux-2.6.19]# makebzImage               ===> arch/i386/boot/bzImage
[root@lacelinux-2.6.19]# make modules                  ┐ ==> /lib/modules/버전
[root@lace linux-2.6.19]# make modules_install       ┘

   5) 커널 설정 후 재부팅
[root@lace~]# makeinstall                       ===> bzImage  => /boot/vmlinuz
                                                                                system.map =>/boot/System.map
                                                                                /etc/grub.conf

   6) 재부팅 하면 처음 시작시 grub에 windows와 linux 2.6.9버전과 linux 2.6.19버전 3가지가 나온다.

   7) error시에는 make clean 후 다시 시작한다.
[root@lace ~]# make clean

댓글 없음:

댓글 쓰기