2009년 5월 14일 목요일

커널컴파일 하기

2. 커널 소스를 받아서 컴파일하기

커널다운로드(ftp.kernel.org) 및 /usr/src/로 이동

# bzip2 -d linux-2.4.26.tar.bz2 (tar 화일 변환)

# tar xvf linux-2.4.26.tar

# ln -s linux-2.4.26 linux (새로운 커널을 linux로 링크)

# cd /usr/include

# mv asm asm.old

# mv linux linux.old

# ln -s /usr/src/linux/include/asm-i386 asm

# ln -s /usr/local/src/linux/include/asm-generic asm-generic

# ln -s /usr/local/src/linux/include/linux linux

커널 컴파일

# cd /usr/local/src/linux

    커널 컴파일은 상당히 많은 옵션에 대한 이해가 필요합니다.
    옵션에 대한 이해보다는 기존에 사용하던 옵션을 그대로 사용하면서
    새롭게 옵션을 지정할 수 있는 방법에 대해서 말씀드리겠습니다.
   
    기존에 사용하던 커널옵션은 /boot/config-2.4.20-20.9 처럼 옵션이 저장되어 있습니다.
    이 파일을 새로 받아서 압축을 해제한 디렉토리로 복사를 합니다.

# cp /boot/config-2.4.20-20.9 /usr/local/src/linux/.config

# make mrproper 

# make menuconfig
   
    menuconfig 화면이 나타나면 하단의
    Load an Alternate Configuration File을 선택해서 좀전에 /boot 에서 복사한
    커널옵션값이 저장된 파일을 불러옵니다. 위에서 linux라고 복사했습니다.

# make dep

# make bzImage

# make modules

# make modules_install

# make install   (새로운 커널이 grub 또는 lilo에 자동으로 등록됨.)

마지막으로 grub이나 lilo에 정상적으로 등록이 되었는지 확인 후 재부팅을 합니다.
(또는 한번에 생성하시려면 # make dep bzImagel modules modules_install install)

제가 꾸준히 사용하고 있는 방법입니다.
컴파일시 오류가 발생한다면 거의 100% 컴파일 옵션에 대한 이해부족이라고 생각됩니다.
이러한 옵션에 대한 이해를 배제하고 간단히 기존에 사용하던 커널컴파일 옵션을 불러오고
거기에 새롭게 옵션을 지정하면서 쉽게  커널을 컴파일하는 방법이라고 보시면 됩니다.

허접하지만 문제가 발생하면 rootda.org QnA 섹션을 이용하시기 바랍니다.

댓글 없음:

댓글 쓰기