ubuntu

리눅스 커널 컴파일

097 2013. 3. 15. 16:07
# ref.

http://smilk.egloos.com/128207 

http://rommance.net/tc/291

http://kldp.org/files/txt.txt

http://pawn.tistory.com/6


0. 관리자 모드 진입

# sudo -i


1. 커널 컴파일에 필요한 필수 패키지 설치

# apt-get install build-essential libncurses5-dev bzip2

(* libncurses5-dev : for menuconfig, bzip2 : for extraction)


2. 커널 다운로드

http://www.kernel.org/ 에서 3.8.2 버전 커널 소스 다운로드 후 /usr/src 에 저장


3. 다운받은 커널 압축풀기

root@ubuntu: /usr/src# tar zxvf linux-3.8.2.tar.bz2 (or tar -xvf linux-3.8.2.tar.bz2


4. Makefile 파일 수정

root@ubuntu: /usr/src/linux-3.8.2# geany Makefile

에서 EXTRAVERSION = -2009147055

(* geany : 에디터)


5. 기존의 커널 설정 제거(처음 컴파일시는 생략가능)

root@ubuntu: /usr/src/linux-3.8.2# make mrproper


6. 우분투의 configuration  복사해오기

root@ubuntu: /usr/src/linux-3.8.2# cp /boot/config-3.5.0-17-generic .config

(* config를 제대로 할 줄 몰라 기존 설정을 따르기로 함)


7. configuration

root@ubuntu: /usr/src/linux-3.8.2# make menuconfig

에서 Load an Alternate Configuration File 을 선택해서 .config 를 불러온다.


8. 설정한 영역의 의존성 검사

root@ubuntu: /usr/src/linux-3.8.2# make dep


9.  이전 컴파일시 생성된 파일 삭제(처음 컴파일시는 생략가능)

root@ubuntu: /usr/src/linux-3.8.2# make clean


10. 설정한 기준으로 새로운 커널 생성

root@ubuntu: /usr/src/linux-3.8.2# make bzImage


11. 모듈 생성

root@ubuntu: /usr/src/linux-3.8.2# make modules


12. 모듈 설치

root@ubuntu: /usr/src/linux-3.8.2# make modules_install


13. 인스톨

root@ubuntu: /usr/src/linux-3.8.2# make install

(* 이 과정을 통해 Initrd 이미지 생성 및 커널이미지와 System.map 맵핑파일을 /boot 에 복사하고 심볼릭 링크 파일 생성, grub.conf 가 알맞게 수정됨)


14. Done