커널 컴파일

지각생 연습장

목차

리눅스

기본 방식

  • 필요한 파일들 다운로드 - 리눅스 커널 소스, 컴파일에 필요한 라이브러리, 프로그램들
  • 하드웨어 정보 수집
  • make mrproper
  • make clean
  • make config / xconfig / gconfig / menuconfig
  • make (all)
  • make modules
  • make modules_install
  • make install

배포본 별 컴파일 방식

데비안 Debian 식

   apt-get install kernel-package libncurses5-dev fakeroot linux-source
   cp /boot/config-`uname -r` ./.config
   make menuconfig
   make-kpkg clean
   fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
   cd /usr/src/
   ls -l
   dpkg -i linux-image-2.6.19.1-custom_2.6.19.1-custom-10.00.Custom_i385.deb
   dpkg -i linux-headers-2.6.19.1-custom-10.00.Custom_i386.deb
   vi /boot/grub/menu.lst

우분투 10.04

  • "가담항설" 블로그 : 좀 더 쉬워진 커널 컴파일 (10.04 Lucid)
    localmodconfig : 현재 쓰고 있는 커널의 모듈만 적재시켜 최적화 => make menuconfig (또는 xconfig) 에서 어떤 모듈을 포함할까 선택하는 과정이 간단해진다
  • 10.04에서 자동으로 initrd.img 파일이 안 만들어짐. 위 글에서 역시 설명한대로 아래처럼 해줌
    $ sudo cp /usr/share/kernel-package/examples/etc/kernel/postinst.d/initramfs /etc/kernel/postinst.d/
    $ sudo mkdir /etc/kernel/postrm.d/ (postrm.d 디렉토리가 없다면..)
    $ sudo cp /usr/share/kernel-package/examples/etc/kernel/postrm.d/initramfs /etc/kernel/postrm.d/

커널 옵션

커널 옵션 관련 메모

이전 설정을 새 커널에 적용하려면

  1. 새 커널 소스의 압축을 풀고 디렉토리로 들어가서
  2. make mrproper
  3. /boot/config-* 알맞은 버전을 .config로 복사
    cp /boot/config-`uname -r` ./.config
  4. make oldconfig; make menuconfig
  5. 이후 똑같이 진행

FreeBSD

  • #make LINT 하면 LINT파일이 생성되는데, 파일 안에 있는 옵션들이 지금 내가 쓰고있는 freeBSD 커널컴파일 할때 인식하는 옵션이다
개인 도구