[LinuxFocus-icon]
초기화면  |  지도  |  차례  |  찾아보기

새소식 | 지난기사 모음 | 추천사이트 | LF에 대하여  
This article is available in: English  Castellano  Deutsch  Francais  Nederlands  Portugues  Russian  Turkce  Korean  

정보

글쓴이 소개:

저는 인도에 살고 있는 20살의 청년 Subhasish Ghosh입니다. 컴퓨터 시스템엔지니어이면서 컴퓨터 전문가입니다. 현재 6개의 마이크로소프트 공인 자격증을 취득하였으며 NT 4.0트랙에 관한 자격증도 취득하고 있습니다. 리눅스는 오랫동안 사용해 왔는데 특히 Redhat리눅스를 사용했습니다. 현재 RedHat리눅스 공인전문가(RHCE) 시험을 준비중이구요. 아마 조만간에 리눅스가 저의 주된 업무운영체제가 되지 않을까 싶네요.


차례:

 

자기 입맛에 맞는 리눅스 커널 컴파일, 설정 그리고 설치

[illustration]

요약:

안녕하세요? 자 이 글에서는 레드햇 리눅스 커널을 여러분의 입맛에 맞게 바꾸어 컴파일 한 다음 설치하는 모든 과정을 살펴볼 것이다. 이미 알고 있겠지만 여러가지이유때문에 커널을 자신의 입맛에 맞게 변경할 필요가 있다. 필자는 이 글에서 어떻게 하면 자신의 입맛에 맞는 커널을 컴파일하고 설정하고 설치할 수 있는지에 대해 설명하고자 한다. 아래 과정은 RedHat리눅스 사용자를 대상으로 설명되었으며 다른 대부분의 리눅스 배포판에서도 별다른 변경없이 이 과정을 따라할 수 있다.



 

들어가는 글

이 글은 리눅스 커널을 컴파일하는 27단계에 대한 소개글이다. 아래 소개하는 방법은 다음 시스템을 기준으로 작성되었다. : COmpaq Presario 4010시리즈 컴퓨터, 15.5Gb 하드디스크, 96MB RAM, 400MHz Intel Celeron프로세서, 커널 2.2.16-22에 기반을 둔 Redhat리눅스 7.0 배포판.
우리의 목적은 제대로 작동하는 최적화된 커널을 얻는것이다. 최적화된 커널의 이름을 필자의 이름을 따서 "2.2.16-22ghosh"라 부르기로 했는데 여러분은 여러분이 좋아하는 이름을 붙이면 된다. 자 그럼 재미있는 리눅스커널 컴파일사냥을 떠나보자.

 

단계

단계 1: "root"로 로그인한 다음 다음 단계를 실행한다.

단계 2: 명령프롬프트가 나타나면 다음 명령을 실행한다.: rpm -q kernel-headers kernel-source make dev86

단계 3: 만약 이 RPM들이 이미 설치되어 있다면 단계 4로 넘어간다. 그렇지 않다면 Redhat리눅스 7.0 CD-ROM을 마운트시킨 다음 이 RPM들을 설치하기 위하여 rpm -Uvh 명령을 실행한다.

단계 4: 만약 X윈도우가 정상적으로 작동하고 있었다면 명령행에서 startx를 입력하여 X-윈도우환경으로 작업을 한다. X윈도우가 설정되지 않았다면 개인적으로 먼저 X를 설치하라고 권한다. X윈도우에서 작업을 하면 정말편리한 점이 많다. 만약 X윈도우가 설정되지 않았다면 커맨드라인에서 make config나 make menuconfig를 입력하면 된다. 이 글에서는 이미 X윈도우시스템이 설정되어 있다고 가정하고 계속 설명을 하겠다. 자 X를 띄우기 위하여 startx 명령을 실행하자.

단계 5: 만약 GNOME환경에서라면 GNOME Terminal을 열고 cd /usr/src/linux명령을 입력한다.

단계 6: 이제 /usr/src/linux 디렉토리에서 make xconfig라고 입력한다.

단계 7: make config의 GUI버전이 화면에 뜰 것이다. 이를 통해서 다양한 선택사항을 결정하여 여러분의 입맛에 맞는 커널을 얻을 수 있다.

Step 8: 자, 이제 선택사항을 변경해야 하는데 한동안 이 선택사항을 그대로 두기를 권장한다. 적어도 하드웨어와 친근해지기 전까지는 말이다.

기본 설정은 매우 무거운 편이다. 반면 이 설정은 대부분의 컴퓨터에서 잘 작동한다. 여러분은 처음에는 어떻게 커널을 컴파일하고 설치하는지를 배우기 위하여 모든 과정을 전부 다 해보기를 권한다. 여러분의 하드웨어와 좀더 친근해지고 "전문적인 지식"을 가진 후에야 여러분이 원하는 작고 최적화된 커널을 얻을 수 있을 것이다. 여러분의 컴퓨터 내부에 관하여 조금더 자세히 알고 싶다면 /proc디렉토리에 있는 /proc/pci, /proc/interrupts, /proc/modules 파일을 살펴보기 바란다.

이 과정에서 반드시 변경해야 하는 것이 있는데 바로 다음 항목들이다.:

1.Processor Type and Features: 펜티엄 2,3, 인텔 셀러론 중에서 여러분의 시스템 프로세스에 적절한 프로세스를 선택하라. 예를 들어 필자의 경우는 다음과 같다.: PPro/686MX, 최대 메모리: 1 GB, Math Emulation: Yes, MTRR: Yes, SMP: Yes.

2.Filesystems대화상자를 띄운다음 다음을 바꾼다.: 필자의 경우는 : DOS FAT fs support: Yes(y), MSDOS fs support: Yes(y), UMSDOS: m, VFAT(Windows 95) support: Yes(y), NTFS filesystem support (read-only): Yes(y), NTFS read-write support(DANGEROUS): No(n)로 했다. 이때 다른 항목은 그대로 두었다. 위에서 언급한 변경사항은 거의 위험하지 않으므로 이미 존재하는 리눅스커널에 악영향을 미치지 않을 것이다.

3.메인 창으로부터 저장하고 빠져나온다.

단계 9: 자 이제 /usr/src/linux디렉토리에서 ls -al을 해보자

단계 10: "Makefile"이란 파일이 존재하는지 확인해 보라. 이 파일은 전체 과정에서 가장 중요한 파일이다. 따라서 반드시 이 파일을 백업하도록 하자. 백업하는 명령은 cp Makefile Makefile.bak이다.

단계 11: 자 이제 수정을 해보자: (/usr/src/linux디렉토리로 이동한 다음 진행하라.) vi Makefile.

단계 12: EXTRAVERSION줄로 가서 아래와같은 것을 변경한다. 필자의 경우는 EXTRAVERSION=-22를 EXTRAVERSION="-22ghosh"로 바꾸었다. 이 이름은 여러분이 마음대로 정할 수 있다.

단계 13: 저장하고 파일을 빠져나간다.

단계 14: 이제 다음에 설명하는 단계들은 모두 /usr/src/linux에서 이루어진다. make dep clean명령을 실행하자.

단계 15: make bzImage modules명령을 실행한다. 이 명령은 조금 시간이 걸릴 수도 있으므로 모든 필요한 파일을 컴파일하는 동안 차라도 한잔하기 바란다. 나는 컴파일을 한방중에 했기 때문에 잠시 선잠을 청했다.

단계 16: 자 이제 끝났으면 /usr/src/linux/arch/i386/boot디렉토리에 "bzImage"파일이 생성된 것을 볼 수 있다. 한번 이 디렉토리로 가서 "bzImage"파일이 생성되었는지를 확인해보라. 모든 단계가 이상없이 진행되었고 xconfig에서 모든 변경사항이 적절했다면 이 파일이 생성되었을 것이다. 이 파일이 존재하면 이제 이 전쟁은 75%정도 이긴 것이다. 불행하게도 이 파일이 없다면 어디선가 실수를 한 것이다. 잠시 휴식을 취한 다음 처음부터 다시 차근차근 해보라. 필자는 여러분이 모두 성공하기를 바란다.

단계 17: (/usr/src/linux)에서 cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.2.16-22ghosh명령을 실행한다.

단계 18: cp System.map /boot/System.map-2.2.16-22ghosh명령을 실행해보자.
반드시 해야 하는 것은 아니지만 여러분의 커널 설정파일(/usr/src/linux/.config)을 저장하는 것이 나중에 다시 동일한 설정으로 커널을 생성하고자 할때 유리하므로 권장하는바이다. 그래픽 설정창(make xconfig)은 설정파일을 읽어오는 기능을 제공한다. 설정파일을 저장하려면 cp /usr/src/linux/.config /boot/Config-2.2.16-22ghosh명령을 실행한다.

단계 19: make modules_install라 입력하고 엔터를 치자. 이제 모든 모듈이 새로운 디렉토리에 설치가 된다.

단계 20: mkinitrd /boot/initrd-2.2.16-22ghosh.img 2.2.16-22ghosh라 입력한다.

단계 21:vi /etc/lilo.conf라 입력한 다음 아래 항목을 추가한다.:

image=/boot/vmlinuz-2.2.16-22ghosh

label=GhoshKernel
initrd=/boot/initrd-2.2.16-22ghosh.img
root=/dev/hdc5
read-only

단계 22: 저장하고 빠져나온다. lilo.conf에 있는 이 항목을 바꿔주는 이유는 여러분의 시스템에서 루트가 어디가 되어야 하는지 그리고 어떤 커널이 있는지를 알려주는 것이다. 필자의 경우 루트가 되는 장치명은 /dev/hdc5이었다. 자 여러분 자신의 시스템에 적절한 값을 root에 준다.
df | grep '/$'명령을 실행해 보면 여러분의 루트 파일시스템이 위치한 곳을 알려준다. grep뒤의 표현식은 반드시 작은 따옴표를 사용해서 알려준다.

단계 23: 다음과 같이 입력한다.: /sbin/lilo -v -v

단계 24: 화면에 나타난 정보들을 전부 읽어보라. 만약 에러가 없다면 모든 것이 잘된 것이다. 축하한다!!!!

단계 25: 시스템을 재부팅시키자.: /sbin/reboot 또는 /sbin/shutdown -r now.

단계 26: 시작단계에서 Tab키를 눌러라(또는 Lilo 시작화면이 뜨면 Control-X를 누른다.) 그러면 이미 존재하던 항목과 함께 "GhoshKernel"항목을 볼 수 있다.:

단계 27: GhoshKernel이라고 입력하고 엔터키를 친다.완전히 여러분의 입맛에 맞춘 커널이 작동하면서 시스템이 부팅될 것이다. 이제 여러분의 시스템에 여러분 자신만의 커널이 작동하고 있다.

 

결과

부팅과정을 살펴보면서 화면에 나타나는 메시지와 에러를 확인한다. /var/log/boot.log파일과 dmesg명령을 통해서 이러한 메시지를 뒤에 살펴볼 수도 있다. 아무 에러도 없었다면 커널이 여러분의 하드웨어에 꼭 맞게 설정되어 작동하고 있는 것이다. 정말 훌륭하다!!

다시 로그인이 끝나면 uname -a을 입력하고 엔터키를 누르자. 그럼 화면에 다음 항목이 보일 것이다.: 2.2.16-22ghosh이라 나오고 이 뒤에 컴파일 시간과 기타 몇가지 정보들이 보일 것이다. 이 메시지가 나오면 여러분의 입맛에 맞는 커널이 작동중인 것을 알수 있다. 이제 되었다. 자 이제 여러분이 좋아하는 커널의 버전만 기억하고 있자. 만약 이렇게 했는데 작동하지 않는다면 필자의 전자우편주소인 로 궁금한 점이나 제안사항을 보내주기 바란다. 여러분의 이야기를 듣고싶고 여러분의 입맛에 맞는 커널을 실행할 수 있도록 도와주고 싶다. 자 조심해서 해보기 바란다.

 

이 기사에 대한 의견이 있습니다

각 기사는 피드백 페이지가 들어 있습니다. 피드백을 통하여 여러분은 저자에게 의견을 보내거나 다른 독자의 의견을 보실 수 있습니다.:
 피드백 페이지 

본 웹사이트는 리눅스포커스 편집팀에서 관리합니다
© Subhasish Ghosh, FDL
LinuxFocus.org

오자를 찾으셨거나 의견이 있으시면 LinuxFocus로 알려주세요
Translation information:
en -> --
en -> ko

2001-06-29, generated by lfparser version 2.16