2010년 8월 29일 일요일

최신 커널을 다운로드 받아 컴파일 하는 방법.

1.최신 커널 다운

( www.kernel.org )에 접속하면 최신버전의 커널을 다운 받을 수 있습니다.
- 최신버전의 커널을 Full Source를 눌러 다운받습니다.

- Fedora 13은 기본적으로 다운받은 것은 다운로드 폴더안에 저장됩니다.


2. 최신 커널 컴파일 과정

1단계.
- 터미널을 실행 시킵니다.

※ 터미널의 위치
- Fedora 13 바탕화면의 상단 메뉴에서 ( 프로그램 > 시스템 도구 > 터미널 ) 순서.

2단계.
-터밀널을 실행 시키면 우선 슈퍼 사용자[슈퍼 유저]가 되어야 합니다.
-터미널 첫 화면에서  #su를 치면, 슈퍼 사용자의 암호를 입력하라고 출력되고,
 Fedora 13 설치지 설정한 암호를 입력합니다.
- 그 다음,  터미널에 #yum install gcc를 입력하여 gcc를 설치합니다.

3단계.
- #ls를 입력하면 현재 슈퍼유저의 폴더 목록이 출력됩니다.
- 다운받은 최신커널이 저장되어 있는 폴더를 선택해줍니다.
  ( 예: 다운로더에 최신 커널이 설치 되어있을 경우 "#cd 다운로드" 라고 입력함.)
- #mv linux-2.6.35.3.tar.bz2  /usr/src 입력.
               ( 파일명 )                ( 복사할 경로 )
- #cd /usr/src 입력.
- #pwd 입력.
  ( /usr/src가 출력됨.)
- #ls 입력.
  다운로드 받은 최신커널의 파일 명칭이 출력됩니다.
  ( 예: linux-2.6.36-rc2.tar.bz2 )
- #tar jxvf linux-2.6.36-rc2.tar.bz2
  압출을 풀때 사용하는  명령어로 위와 같이 입력하면 #tar jxvf 입력하고 파일명
  을 적어주면 해당파일의 압축을 풀기 시작합니다.

 4단계.
- #make mrproper 입력.
( 이전에 설정한 정보를 지우거나 새로운 커널 소스를 가져다 컴파일 할 때에는
  이 명령을 먼저 사용해야 합니다. make mrproper 명령은 이전 커널을 컴파일할
  때 만들어진 오브젝트 파일(*.o)과 의존성 설정, 컴파일 환경 설정값, 버전 정보
  등 새로 시작하는 컴파일에 영향을 주는 이전 정보들을 삭제합니다.)
- 이전에 설정된 컴파일환경을 재사용한다면 이 과정을 건너뜁니다. -

- #make menuconfig 입력. ( 또는 make config, make xconfig )
  ( 커널 이미지에 포함될 내용을 선택하는 부분입니다 )
     - 아래는 메뉴식 설정화면의 한 예입니다. -
- 메뉴방식의 화면에서 단축키와 방향키로 메뉴 사이를 옮겨 다닐 수 있습니다.
- "---->" 표시가 있는 곳에서 Enter를 누르면 하위 메뉴가 열립니다.
- <ESC>를 두번 누르거나 <Exit>를 선택하면 상위 메뉴로 올라갑니다.
- <h>를 누르면 도움말을 볼 수 있습니다. <Tab> 키를 누르면 컨트롤 사이를
  옮겨다닙니다.
- 질문에 대해 Y는 커널에 포함, N은 제외, M은 모듈을 뜻합니다.
  설정 상태는 [ ] 또는 < > 안에*(선택), M(모듈), 빈칸(제외)로 표시됩니다.
  모듈기능(M)은 "< >"으로 표시된 질문에만 쓸 수 있습니다.
- 설정이 끝났다면 메인 메뉴에서 "Save Configration to an ALternate FiLe"을
  선택하여 설정 내용을 파일로 저장합니다. 저장된 파일을 읽어들일 때에는
  "Load an ALternate Configration FiLe" 메뉴를 선택합니다.

- 위의 작업을 끝냈으면 다시 터미널로 돌아갑니다.
  ( ncurses.devel and try again 이라는 메시지가 떳으면
   #yum install ncures-devel을 입력하여 설치해줍니다.)

※ make menuconfig는 ncurses(new-curses) Library를 사용합니다.
 ncurses는 화면 입출력에 쓰이는 라이브러리입니다. ncurses가 설치되지
 않았다면 make menuconfig 명령 뿐만 아니라 설정 프로그램 대부분이
 실행되지 않으므로 반드시 설치합니다.

5단계.
- #make를 입력.
  ( 1~2시간 정도 소요가 된다. )

6단계.
- #make modules 입력 ( 모듈들을 생성합니다. )

※ 모듈 : 부팅시 메모리에 적재되는 것이 아니라 부팅 과정 이후 설정에 따라
     혹은 해당 장치 혹은 기능을 사용할 경우에만 메모리에 올려서 사용한 후
     사용하지 않을 경우 메모리에서 삭제하므로 효과적으로 메모리를 관리
     할 수 있습니다.

- make modules_install 입력. ( 만들어진 모듈들을 설치합니다. )
- 모듈이 위치할 디렉토리(/lib/modules/<커널버전>)으로 이동시켜주는
  역할도 합니다.

※ 커널 버전마다 지원하는 장치나 기능이 다르므로 모듈의 경우 /lib/modules
     디렉토리에 해당 커널 버전 디렉토리를 생성하여 커널 버전별로 관리하게
     됩니다.

- make install 입력.
( make install: initrd 이미지를 생성해주고, vmlinuz 커널이미지와 System.map
  맵핑 파일을 /boot에 복사하고 심볼릭 링크 파일 생성, 그리고 grub.conf를
  알맞게 수정합니다. )

※ 위의 모든 명령어 한번에 실행.
- #make bzImage modules modules_install install 과 같이 한번에 끝낼수도
  있습니다.
- #make bzImage && make modules && make modules_install && make install
 ( 두번째 방법 역시 위의 명령어를 한번에 실행시키는 방법으로써 이 방법은
    전단계에서 에러가 없을시에만 다음 단계로 넘어가게 됩니다. )

- #ls /boot을 입력. (새로컴파일된 커널의 버전을 확인할 수 있습니다.)


# 추가내용

- hiddenmenu : 커널 2.6대로 들어오면서 Grub 화면이 2개로 구성되었습니다.
  예전에는 부팅 가능한 운영체제를 모두 보여주는 화면이 나타났으나,
  이제는 기본으로 선택되어 있는 운영체제의 제목만을 간단하게 보여주는
  화면이 나타나서 사용자의 별도 입력이 없으면 바로 해당 운영체제로 부팅해
  버리는 구조입니다.
     물론 이 화면이 나타났을때 아무키나 누르면 종전의 기본 화면이 나타나서
  사용자의 운영체제 선택을 기다리므로 크게 달라진건 없지만, 사용자에
  따라서는 이러한 hiddenmenu가 불편할 수도 있으므로,  이 경우 터미널에
  #vi /etc/grub.conf 를 입력하여 에디트모드로 들어간 후, hiddenmenu 앞에
  "#"을 달아 주석처리 해주면 다음번 부팅부터는 hiddenmenu가 뜨지 않고,
 운영체제를 선택할 수 있는 기본 화면이 바로 뜨게 됩니다.

- 커널 설치 4단계에서 #make mrproper 입력시에 에러가 나는 경우가 있습니다.
  이러한 경우에는 터미널 창의 ( 편집 - 프로파일 )에 들어가서 위의 그림과 같이
  설정해주면 됩니다.

댓글 없음:

댓글 쓰기