'커널컴파일'에 해당되는 글 1건

  1. 2009.08.02 우분투 9.04에서 커널 컴파일하기
우분투는 다른 배포판 리눅스와는 달리 패키지를 통해 커널 설치가 가능하다.
컴파일 한 후 deb 패키지로 만든 커널 패키지는
  1. 커널의 설치/제거가 용이하고
  2. 배포가 가능하다.

아래는  http://ubuntu.or.kr/viewtopic.php?f=9&t=4543 에 나온 커널 컴파일 방법을
그대로 본인의 VM(VMware 6.x)에서 시연한 것으로, 2.6.28-14-generic에서 2.6.30.4로 업데이트 했다.


미리 해야 할 일
  1. 루트 계정의 패스워드 만들기
    우분투는 처음 설치하면 루트 계정의 패스워드가 없는 상태다.
    아래와 같이 명령을 넣어 루트 계정의 패스워드를 만들자.
    $ sudo passwd root
  2. 설치된 하드웨어와 리눅스 커널 버전 확인
    의례적으로 하는 작업이다.
    혹시나 하드웨어 설정이 잘못될 경우를 대비해 정보를 백업해놓자.
    $ uname -r
    $ lspci
  3. 커널 컴파일에 필요한 보조 패키지 설치
    개발용 리눅스라면 왠만한 패키지들을 설치되어 있을 것이다.
    "이 정도 패키지들은 다 설치되어 있어!"라고 자부하시는 분은
    커널 컴파일 진행 중에 패키지가 없다는 메시지가 나올 때 마다 설치해도 좋다.
    $ sudo apt-get install build-essential bin86 kernel-package wget libncurses5 libncurses5-dev


커널 다운로드
 (아래의 작업들 부터는 루트 권한으로 진행합시다.)

  1. 경로 설정
    $ cd /usr/src
  2. 커널 다운로드
    $ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.4.tar.bz2
  3. 커널 압축 풀기
    $ tar -xvjf linux-2.6.30.4.tar.bz2
  4. 심볼릭 링크
    $ ln -s linux-2.6.30.4 linux
    $ cd linux
  5. 커널 패치
    새 패치가 있을 때만 진행한다. *를 그대로 입력하는 사람은 없겠지.
    $ wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.30.*.bz2
    $ bzcat patch-2.6.30.*.bz2 | patch -p1


커널 컴파일

  1. 커널의 예전 설정 가져오기
    일일이 설정을 해주지 않아도 되는 매우 편리한 작업.
    $ cp /boot/config-`uname -r` .config
    $ make oldconfig
    or
    기본 커널 설정 파일을 생성해 처음부터 일일이 설정해주는 방법도 있다. 물론 비추.
    $ make i386_defconfig or $ make x86_64_defconfig
  2. 커널 설정 조정
    가장 예민한 작업이면서도, 새 커널로 업데이트하는 가장 큰 이유이기도 하다.
    앞의 과정에서 커널의 예전 설정을 그대로 사용하고,
    아주 높은 버전으로 업데이트 하는게 아니라면 크게 손 대지 않아도 된다.
    단, 커널해킹의 커널디버깅을 없애면 커널 용량을 많이 줄일 수 있다.
    $ make menuconfig (터미널 상의 GUI)
    or
    $ make xconfig (GUI with X-Window, QT 패키지 필요)
  3. 컴파일 및 deb 패키지 생성
    필요하다면 컴파일 타겟에 kernel-headers와 linux_source도 추가한다.
    컴파일이 진행되는 화면이 보이면 가슴이 두근두근 할 것이다.
    시간이 매우 오래 걸리므로 수면을 취하거나, 독서를 하거나, 운동을 하고 오는게 바람직하다.
    $ make-kpkg  clean
    $ make-kpkg --initrd --revision=386 kernel_image kernel_headers linux_source modules_image
  4. 패키지 파일 확인
    생성이 안됐으면 담배 한대 피우고 나서 커널 컴파일을 다루는 다른 정보를 찾는게 좋다.
    usr/src/linux-image-2.6.30.4_394_i386.deb
  5. 대망의 새 커널 설치
    이 시점에서 VM을 백업해놓는게 좋다. 손가락 아파서 이 방법까지 적기는 싫다.
    $ cd /usr/src
    $ dpkg -i linux-image-2.6.30.4_394_i386.deb
    몇 가지 작업을 하더니 패키지처럼 간단히 설치가 되었다!
  6. 커널 버전 확인
    재부팅을 해보자.
    패키지로 설치하면 GRUB에 새 커널을 추가하는게 아니라 기존의 커널을 대체한다.
    그러므로 부팅 중에 손댈 작업은 없다.
    $ uname -r
    새로운 버전이 보이는가? 성공이다!
  7. 장치 드라이버 새로 설치
    새 커널에서는 몇몇 장치 드라이버를 새로 설치해야한다.
    패키지로 제공하는 드라이버를 사용할 수 없다고 하는데,
    VMware용 드라이버는 커널 소스에 내장되어 모듈로 컴파일이 되었는지,
    사운드카드 말고는 정상적으로 작동했다.
    새 드라이버가 필요하신 분은 제조사 사이트에서 다운받아 사용받기를 권장한다.


주위에 도움이 되길 바라며...

Posted by 배트
,