• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

리눅스 커널(Kernel) 컴파일

기술자료/OS 2003. 12. 9. 19:18
Kernel Compile

  배경지식

기본적으로 커널 소스의 디렉토리는 /usr/src/linux 이다.
커널 컴파일 방법에는 3가지가 있다
make config -> 옵션을 잘못 선택하면 처음부터 다시해야하는 단점이 있다.
make menuconfig -> 가장 추천하는 방법(단, ncurses가 있어야 한다.)
make xconfig -> X에서 볼수 있다.( 화려하다. 그냥 구경한번 해보길...)
시스템 사양을 잘 알아야 한다.(이더넷 카드, 사운드 카드, CPU가 몇개(?)인지등...)
어떠한 환경에서 사용할건지 결정하여야 한다.(커널의 최적화를 위해...)
Kernel Compile Option
꼭 주의깊게 살펴볼것!!(나에게 어떤 옵션이 필요한지 볼것)
제 2회 리눅스 공동체 세미나 자료에서 추출(이규호님께 감사)
커널 2.4 Intro중 커널옵션설정
일반적인 데스크탑 PC사양에서 필요로하는 커널옵션들을 설명하고있다.
  따라하기

커널 소스를 받는다.( http://www.kr.kernel.org/pub/linux/kernel/)
소스를 /usr/src 방으로 옮긴다.(예: mv linux-2.2.12.tar.gz /usr/src )
전에 있던 커널소스 /usr/src/linux 디렉은 다른이름으로 바꾸던지 지워라.(예: mv linux linux-2.2.11)
만약 linux라는 이름으로 심벌릭 링크되어있다면 링크만 해제하라.(예: rm linux)
커널 소스를 푼다.(예: tar xvvzf 커널버전.tar.gz 또는 tar xvvIf 커널버전.tar.bz2)
linux라는 디렉토리가 생겼을 것이다. 그 디렉으로 들어간다.( cd linux )
# make menuconfig ( 현재 위치 /usr/src/linux )
커널 컴파일 옵션을 보고 시스템에 맞는걸 선택한다.(중요하다!)
# make clean (예전 오브젝트 파일 제거)
# make dep (의존성을 검사)
# make bzImage (커널 이미지를 압축생성한다.)
# mv arch/i386/boot/bzImage /boot/vmlinuz-커널버전 (예: mv arch/i386/boot/bzImage /boot/vmlinuz-2.2.12)
# mv System.map /boot/System.map-커널버전 (예: mv System.map /boot/System.map-2.2.12)
# vi /etc/lilo.conf ( 리로를 편집한다 )
     boot=/dev/hda
     map=/boot/map
     install=/boot/boot.b
     prompt
     timeout=50
     image=/boot/vmlinuz-2.2.12 -> 새로운 커널이미지를 linux라는
     label=linux              ?   레이블로 한다.
     root=/dev/hda1
     read-only

     image=/boot/vmlinuz-2.2.11 -> 혹시나 모를 커널 패닉에 대비하여          
     label=old                     예전 커널을 old란 레이블로 해놓는다.
     root=/dev/hda1                (예전 버전이 2.2.11일때)
     read-only
# /sbin/lilo ( lilo.conf의 내용을 인식시켜 주기위해 )
여기까지 커널 컴파일은 과정은 끝.
  모듈 인스톨 하기

커널 옵션에서 모듈(M)으로 선택한것을 컴파일 하기위해
# cd /usr/src/linux
# make modules
# make modules_install
위와같이 하면 '/lib/modules/커널버전' 디렉에 모듈들이 위치한다.


Kernel Patch


패치란 매번 커널이 바뀔때 마다 13MB가 넘는 커널 소스를 다시 받을 필요없이 바뀐 차이점만 담고있는 작은 용량의 파일로 커널을 업하는걸 말한다.
장점 : 적은용량으로 패치파일로 커널을 금방 업 할 수 있다.
단점 : 중간의 한 단계를 건너 뛸 수 없다. 예를들어 현재 커널 버전이 2.2.10 인데 바로 2.2.12로 패치 할 순없다.(꼭 2.2.11을 패치하고 나야 된다)
  따라하기

패치 파일을 다운받아 bzip2이든 gzip으로 압축되어있던지 간에 압축을 푼다.
압축을 푼후 /usr/src/linux 방으로 옮긴다.
# patch -p1 < 패치파일?
에러 없이 넘어가면 다음은 커널 컴파일 과정과 같다.
만약 압축을 풀지않고 패치하려면 gzip 또는 bzip2에 따라 다음과 같이한다.
# gzip -cd 패치파일.gz | patch -p1(물론 패치파일의 위치는 /usr/src/linux)
# bzip2 -cd 패치파일.bz2 | patch -p1
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

지름신 2010 Azure me2dayzm 오류 Google Apps Engine Buscuit me2sms Tutorial 것 블로그 Visual Studio windows e-book me2photo SharePoint moss 친구 매뉴얼 비스킷 twi2me 협업 java WSS 수 인터파크 MOSS 2007 개발환경 불만 좀

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바