커널 컴파일
지각생 연습장
목차 |
리눅스
기본 방식
- 필요한 파일들 다운로드 - 리눅스 커널 소스, 컴파일에 필요한 라이브러리, 프로그램들
- 하드웨어 정보 수집
- make mrproper
- make clean
- make config / xconfig / gconfig / menuconfig
- make (all)
- make modules
- make modules_install
- make install
배포본 별 컴파일 방식
데비안 Debian 식
- amd64
- i386
- 우분투 커널 컴파일 (2006/12)
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/
커널 옵션
커널 옵션 관련 메모
- Intel Celeron 2GHz 는 P4 based
- Flat / Sparse memory
- Hypervisor : 가상 OS 사용할때.(여러 OS를 돌릴때)
- EFI firmware?
이전 설정을 새 커널에 적용하려면
- 새 커널 소스의 압축을 풀고 디렉토리로 들어가서
- make mrproper
- /boot/config-* 알맞은 버전을 .config로 복사
- cp /boot/config-`uname -r` ./.config
- make oldconfig; make menuconfig
- 이후 똑같이 진행
FreeBSD
- #make LINT 하면 LINT파일이 생성되는데, 파일 안에 있는 옵션들이 지금 내가 쓰고있는 freeBSD 커널컴파일 할때 인식하는 옵션이다