8.6. 새 커널 컴파일하기

왜 새 커널을 컴파일할까요? 데비안에 들어 있는 기본 커널에는 대부분의 경우에 동작하기 때문에 보통 다시 컴파일할 필요가 없습니다. 또, 데비안은 여러 가지 커널 꾸러미가 들어 있습니다. 그래서 하드웨어에 더 적합한 다른 커널 이미지 꾸러미가 있는 지 먼저 확인해 보는 게 좋습니다. 하지만 다음 이유때문에 커널을 컴파일하는 게 좋을 수도 있습니다:

8.6.1. 커널 이미지 관리

커널 컴파일을 꺼려하지 마십시오. 재미있는 일이고 그만큼 좋은 점이 있습니다.

데비안 방식으로 커널을 컴파일하려면, 꾸러미가 몇개 필요합니다: fakeroot, kernel-package, linux-source-2.6및 기타 이미 설치되어 있을 꾸러미들. (완전한 목록은 /usr/share/doc/kernel-package/README.gz 파일을 참고하십시오.)

이 방법을 이용해 커널 소스에서 .deb 꾸러미 파일을 만들고, 커널에 들어 있지 않은 모듈이 있으면 그 모듈의 .deb 파일도 커널에 맞춰서 만듭니다. 이 방법이 커널 이미지를 관리하는 더 좋은 방법입니다. /boot 안에 커널, System.map 및 빌드할 때 사용한 커널 설정 파일이 들어 있게 됩니다.

데비안 방식”으로 커널을 컴파일할 필요는 없습니다. 하지만 꾸러미 시스템을 통해 커널을 관리하는 게 더 안전하고 더 쉽습니다. 설령 linux-source-2.6 꾸러미가 아니라 직접 리누스 토발즈가 배포하는 커널 소스를 이용한다고 해도 kernel-package 컴파일 방법을 계속 사용할 수 있습니다.

/usr/share/doc/kernel-package 안에 kernel-package를 사용하는 방법에 대한 문서가 있습니다. 여기서는 간단히 어떤 단계를 거쳐야 하는지만 설명합니다.

여기서부터는, 하드웨어에 대한 권한 없이 자기 홈 디렉토리에 커널 소스를 풀었다고 가정합니다[16]. 또 커널 버전이 2.6.18 버전이라고 가정합니다. 커널 소스를 풀려는 디렉토리에서, tar xjf /usr/src/linux-source-2.6.18.tar.bz2 명령으로 커널 소스를 풀고, 새로 만들어진 linux-source-2.6.18 디렉토리로 들어가십시오.

그리고 커널을 설정합니다. X11을 설치하고 실행중이라면 make xconfig를 실행합니다. 아니면 make menuconfig를 실행합니다. (menuconfiglibncurses5-dev 꾸러미를 설치해야 합니다.) 온라인 도움말을 읽어 보시면서 주의를 기울여 선택하십시오. 뭔가 의심스러운 게 있으면, 잘 모르더라도 해당 장치 드라이버(이더넷 카드, SCSI 컨트롤러 등 하드웨어 주변장치를 관리하는 소프트웨어)를 포함하는 편이 더 좋습니다. 주의하십시오: 특정 하드웨어와는 관계없는 옵션이고 그 옵션이 뭔지 잘 모르겠다면 기본값 그대로 놔 두십시오. “Loadable module support”에 있는 “Kernel module loader” 옵션을 꼭 선택하십시오. (기본값으로 선택이 안 되어 있습니다.) 이 옵션이 없으면, 데비안 시스템에 문제가 발생합니다.

소스 트리에 필요없는 파일들을 지워서 kernel-package 파라미터를 초기화하십시오. make-kpkg clean 명령을 실행합니다.

이제 커널을 컴파일합니다: fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image 명령을 실행합니다. 버전 번호 “1.0”은 마음대로 바꿀 수 있습니다. 이 번호는 커널 빌드를 파악하려고 사용하는 버전 번호일 뿐입니다. 마찬가지로 “custom” 대신에 어떤 단어라도 (예를 들어 호스트이름) 넣을 수 있습니다. 커널 컴파일은 컴퓨터 속도에 따라 시간이 좀 오래 걸릴 수도 있습니다.

일단 컴파일이 끝나면 다른 꾸러미와 마찬가지로 직접 만든 커널을 설치할 수 있습니다. 루트 권한으로 dpkg -i ../linux-image-2.6.18-서브아키텍처_custom.1.0_sparc.deb. 서브아키텍처 부분은 커널 옵션에 따라 달라지는 서브아키텍처 이름입니다. dpkg -i을 실행하면 커널과 함께 쓸만한 보조 파일들이 설치됩니다. 커널 문제를 해결하는데 도움이 되는 System.map 파일이라든지 설정 사항을 담은 /boot/config-2.6.18 등의 파일 등이 설치됩니다. 커널 꾸러미는 부트로더를 자동으로 갱신하여 새로 설치한 커널을 사용하도록 설정해주기도 합니다. 모듈 꾸러미를 만들었다면, 그 꾸러미도 설치해야 합니다.

이제 시스템을 다시 시작합니다. 위의 단계에서 발생한 메세지들을 잘 읽어보시고, shutdown -r now 명령을 실행하십시오.

데비안 커널과 커널 컴파일에 대한 더 많은 정보는 데비안 리눅스 커널 핸드북을 보십시오. kernel-package에 대한 더 많은 정보는 /usr/share/doc/kernel-package 안의 문서를 읽어보십시오.



[16] 다른 위치에 커널 소스를 풀고 빌드할 수도 있지만, 특정 권한이 없이도 할 수 있는 가장 쉬운 방법입니다.