Section 21.1: Ubuntu 에서 리눅스 커널 컴파일하기

주의: 사용자의 시스템에 최소 15 GB 이상의 여유공간이 확보되어 있어야 한다.

Ubuntu 13.04 이상에서의 컴파일 방법들

선택지 A) Git 활용하기

항상 가장 최신의 Ubuntu 커널 소스를 사용하고 싶다면, git 을 사용하는 것이 좋은 선택지가 될 수 있다. 상세한 설명서는 Kernel Git Guide 에서 찾아볼 수 있다. git 저장소에 모든 필요한 제어 파일이 포함되어 있지는 않으므로, 아래 명령어를 사용하여 직접 생성해야 한다:

fakeroot debian/rules clean

선택지 B) 소스 archive 다운로드 하기

이는 추가적인 패치들을 더해 표준 Ubuntu 패키지들을 재빌드 하고자 하는 사용자들을 위한 선택지이다. 아래의 명령어를 사용해 빌드에 필요한 의존성 있는 패키지들을 설치하고 소스 archive 를 (현재 디렉토리에) 압축 해제할 수 있다:

  1. 아래와 같이 수행한다:
    sudo apt-get build-dep linux-image-`uname -r`

선택지 C) 소스 패키지를 다운로드 받아 빌드하기

이는 Ubuntu 가 패치한 커널 소스를 기반으로 수정 및 여러가지 실험을 해보고자 하는 사용자들을 위한 선택지이다.

  1. 최신 소스를 kernel.org 에서 다운로드 한다.
  2. 다운로드한 archive 를 특정 디렉토리에 압축 해제하고 해당 디렉토리로 진입한다:
    tar xf linux-*.tar.xz cd linux-*
  3. ncurses 환경설정 인터페이스를 빌드한다:
    make menuconfig
  4. 기본 환경설정을 그대로 이용하려면, 를 눌러 < Exit > 를 선택하고 Return 키를 누른다.
  5. Return 키를 한번 더 눌러 환경 설정값들을 저장한다.
  6. make 를 사용하여 커널을 빌드한다:
    make
    알아둘 점은, -j 옵션을 이용하면 소스 파일들을 컴파일하는 과정을 다중 코어를 활용하여 병렬 빌드를 수행할 수 있다는 점이다.

최종적으로 압축된 커널 이미지는 arch/[arch]/boot/bzImage 에서 찾을 수 있으며, 여기서 [arch]uname -m 의 결과와 같다.

역주: 원문에는 uname -a 로 기술되어 있으나 문맥상 uname -m 이 더 정확한 것 같아 수정하였습니다.

본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

+ Recent posts