다음 이전 차례

4. Compiling the kernel

4.1 Cleaning and depending (청소와 의존성 검사)

설절 스크립트가 끝났을 때, `make dep'와 `make clean'을 하라는 메세지를 보았을 것이다. 그러므로, `make dep'를 하라. 이것은 모든 의존성, 그러한 포함된 파 일들, 이 제대로 되어 있는지를 확인한다. 이것은 여러분의 컴퓨터가 너무 느리 게 시작되지 않는다면 그리 오래 걸리지 않는다. 이것이 끝나면 `make clean'을 하라. 이것은 모든 오브젝트 파일과 구버전이 남겨논것을 제거하는 것이다. 절대로 이 단계를 잊지 말기 바란다.

4.2 컴파일할 시간

cleaning 과 depending 한 후에, 여러분은 `make bzImage'나 `make bzdisk'를 해야한다.(이부분이 가장 시간이 오래 걸린다.). `make bzImage'는 커널을 컴파일 하고, `bzImage'라는 파일을 arch/i386/boot 에 남긴다. 이것은 새로 압축된 커널이다. `make bzdisk'도 같은 것인데, 이것은 새 bzImage를 ``A:'' 드라이브의 플로피 디스크에 넣는다. `zdisk'는 새 커널을 시험해 보는데 좋다. 만약 그것이 폭탄( 제대로 작동하지 않는것)이라서, 플로피를 제거하고 여러분의 구버전 커널로 부팅해야한다면 말이다. 또 여러분이 사고로 여러분의 커널을 지웠다면, (아니면 이와 비슷하게 치명적인 일이 생긴다면) 이것으로 부팅할 수도 있다. 그리고 여러분이 한 디스크에 있는 내용을 다른 쪽으로 옮겨서 새 시스템에 설치하고자 할 때도 사용할 수 있다.(``이것이 다가 아니다! 얼마나 값어치가 있는가!'')

모든, 최근것이라고 보기에는 불충분한 것들까지도, 커널들은 압축되어 있다. 이 때문에 이름앞의 `bz'가 나왔다. 압축된 커널은 실행될 때 자동적으로 자기 자신이 압축을 푼다.

오래된 커넬은 bzImage라는 것으로 커넬을 못 만들수 있다; 그때는 간단히 zImage 였다. 이 옵션은 현재 존재하지만 현재 커넬 크기를 볼때 이 옵션은 큰 크기의 커넬을 못 쓰므로 bzImage를 만드는것이 기본처럼 되어가고 있다.

4.3 다른 ``make''할 수 있는 것들

`make mrproper'는 더욱 확장된 `clean'ing을 한다. 이것은 때때로 필요하다. 여러분은 매 패치때마다 이것을 할 수 있다. `make mrproper'는 또한 여러분의 구성 파일을 지우기 때문에, 그것이 필요하다고 생각한다면 사본을 만들어야 할 것이다.

`make oldconfig'는 이전의 설정 파일로부터 커널 설정을 시도한다. 이것은 `make config'를 넘어가게 된다. 하지만 여러분이 이전에 커널 컴파일을 한적이 없다거나 이전의 구성 파일이 없다면 여러분은 이것을 할 수 없고, 기본 구성을 원하는 대로 바꾸어야 할 것이다.

`make modules'의 설명에 대해서는 모듈에 대한 섹션을 보기 바란다.

4.4 커널의 설치

여러분이 하고자 하는 일을 할 수 있는 새 커널을 가진 후에는, 설치를 해야한다. 대부분의 사람들은 이것을 위해서 LILO(Linux Loader)를 사용한다. `make zlilo'는 커널을 설치하고, 그것으로 리로를 실해시킨다.그리고 만일 리로가 다음과 같은 방법으로 여러분의 시스템에 설치되어 있다면, 여러분이 시작할 준비를 하게 해준다: 커널은 /vmlinuz이고, 리로는 /sbin에 있으며, 이것이 여러분의 리로 설정(/etc/lilo.conf)과 같아야한다.

그렇지 않다면, 여러분이 직접 리로를 실행해야한다. 이것은 매우 설치하기 쉽고 잘 작동하는 패키지이다. 그러나 사람들이 구성 파일과 혼동하는 경향이 있다. 설정 파일을 보아라.(구버전의 /etc/lilo/config 나 새버전의 /etc/lilo.conf). 그리고 현재의 설정이 어떠한지 보아라. 그 설정 파일은 다음과 같다.

    image = /vmlinuz
        label = Linux
        root = /dev/hda1
        ...

`image ='는 현재 설치된 커널을 나타낸다. 대부분의 사람들은 /vmlinuz을 사 용한다. `label'은 리로가 어느 커널이나 운영체제로 부팅할 것인지를 결정하는데 사용한다. 그리고 `root'는 특정 운영체제의 / 이다. 여러분의 이전 커널의 사본을 만들고, 여러분이 막 만들어낸 bzImage를 제위치에 복사한다(여러분이 `/vmlinuz' 를 사용한다면, `cp bzImage /vmlinuz'이라고 쳐야한다.). 그리고 나서, 리로를 새로운 시스템에서 재실행 시킨다. 여러분은 단지 `lilo'라고 치기만 하면 된다. 그러나 구버전에서는 /etc/lilo/install 이나 /etc/lilo/lilo -C /etc/lilo/config 라고 해야할 것이다.

만일 여러분이 리로의 구성에 대하여 더많이 알고자 하거나 리로를 가지고 있지 않다면, 여러분이 좋아하는 ftp 사이트에 가서 최신 버전을 가져와서 설명에 따르기 바란다.

정상적이지 않은(커널이 제대로 작동하지 않는:역자주) 하드디스크에서 여러분 의 이전 버전의 커널들중에 하나로 부팅하기 위해서는(이러한 경우에 여러분을 구하는 다른 방법은 새 커널을 설치하는 것이다.), 리로 설정 파일의 아래부분 에 있는 `image = xxx'를 포함한 부분을 복사한다. 그리고 `image = xxx' 를 `image = yyy'로 고친다. 여기서 `yyy' 는 여러분의 백업커널이 저장되어 있는 파일의 전체 경로명이다. 그리고 나서 `label = zzz' 을 `label = linux-backup' 으로 고치고 리로를 다시 실행한다. 여러분은 설정파일에다가 `delay=x'라고 써넣어 주어야 할 것이다. x는 10분의 1초 단위의 양으로 이것은 리로가 부팅하기 전에 잠시 기다리도록 하는 것이다. 그러면 여러분은 그것을 정지시킬 수 있고(예를 들면, 시프트 키를 사용해서), 백업 부트 이미지의 라벨을 써 넣으면 된다 (좋지 않은 일이 생길 경우에).


다음 이전 차례