Programming/Kernel

[Kernel : Linux]커널 빌드 (리눅스2.4 & 리눅스2.6)

MB Brad KWON 2013. 6. 18. 14:52

리눅스 커널 소스 다운로드 : http://maskkwon.tistory.com/83


 위에서 적힌대로 커널 소스를 다운로드 했다면 이제 커널 소스를 빌드해보자!!

커널의 빌드 오더는 아래와 같다.


make mrproper

make menuconfig

make dep

make clean

make bzImage

make modules

make modules_install



make mrproper는 기존의 커널의 의존성을 모두 제거


make menuconfig는 커널이 설치되는 환경을 설정


make dep는 커널 소스의 의존성을 확인


make clean은 오브젝트 파일 및 구버전의 소스를 모두 정리


make bzImage는 실행 가능한 커널을 빌드


make modules는 커널에 사용하는 모듈들을 컴파일


make modules_install은 모듈들을 /lib/modules에 설치


 위와 같은 빌드과정이 끝났으면 커널 이미지를 설치하고 GRUB 부트로더의 설정을 변경해주면 된다.


커널 2.4의 경우

make mrproper

make menuconfig

make dep

make clean

make bzImage

make modules

make modules_install


cp /arch/i386/boot/bzImage /boot/vmlinuz-2.4.32

vi /boot/grub/menu.lst


밑의 내용을 부트로더의 메뉴에 추가한다.


title         Debian GNU/Linux, kernel 2.4.32

root         (hd0,0)

kernel      /boot/vmlinuz2.4.32 root=/dev/hd1 ro

savedefault

boot


재부팅을 한 후, uname -a로 커널 버전을 확인해 본다.


Linux root 2.4.32 #1 SMP Tue Jun 18 13:55:12 KST 2013 i686 GNU/Linux



커널 2.6의 경우

make mrproper

make menuconfig

make(make dep, make clean, make bzImage, make modules 일원화)

make modules_install


cp /arch/i386/boot/bzImage /boot/vmlinuz-2.6.14

vi /boot/grub/menu.lst


밑의 내용을 부트로더의 메뉴에 추가한다.


title         Debian GNU/Linux, kernel 2.6.14

root         (hd0,0)

kernel      /boot/vmlinuz2.6.14 root=/dev/hd1 ro

savedefault

boot


재부팅을 한 후, uname -a로 커널 버전을 확인해 본다.


Linux root 2.6.14 #1 SMP PREEMPT Tue Jun 18 14:28:55 KST 2013 i686 GNU/Linux



 SMP는 다중프로세서를 위한 커널을 의마하고 PREEMPT는 선점형 커널을 의미한다. 선점형 커널은 커널에서 작업 중인 경우에도 제어권을 강제로 빼앗을 수 있다는 것을 의미한다.