본문 바로가기
dev, tech/os

[펌] 리눅스 커널 컴파일

by 구띵 2006. 12. 27.

일단 커널 2.6은 최신버전의 리눅스 배포판에서 해줘야 안정적으로 할 수 있습니다.

 

1. module-init-tools을 README에 나온것처럼 설치하면 됩니다.

 

2. 커널을 다운받고 /usr/src에 다운을 받고 압축을 해제합니다.

 

3. linux-2.6.6 디렉토리를 간단하게 링크를 겁니다.

 

]# ln -sf linux-2.6.6 linux-2.6

 

4. 이제 /usr/include로 이동을 합니다. 라이브러리들이 위치해 있습니다.

 

5. 여기서3개의 링크를 걸어줍니다.

 

6. 기존에 있던 asm, linux디렉토리를

 

]# rm -rf asm/ linux/

 

7. 위와 같이 삭제해줍니다.  이제 링크를 걸어줍니다.

 

]# ln -sf /usr/src/linux-2.6/include/asm-i386 asm

]# ln -sf /usr/src/linux-2.6/include/linux linux

]# ln -sf /usr/src/linux-2.6/include/asm-generic asm-generic

 

8. 콘솔에서 커널 옵션을 선택하기 위해 다음과 같이 해줍니다.

]# make menuconfig (옵션선택은 알아서 해주시고요...)
9.자신의 시스템에 맞게 선택을 했다면 저장하고 나옵니다.
]# make bzImage (2.6.x에서는 굳이 make dep과 make clean을 하지 않아도 됨) ]# make modules ]# make modules_install
10. 위와 같은 단계로 컴파일 하면 됩니다. 그리고 커널2.6에서는 커널을
컴파일 할때 알 수 없는 컴파일러의 메시지 대신 간단하게 무슨 파일을 처리하고
있는지만 표시합니다. 컴파일 화면이 한층 더 깔끔해 졌습니다.
11.커널2.6 이미지 설치하기
대부분 인텔 머신을 사용할 것이므로 "arch/i386/boot에서 bzImage와
System.map파일을 적당한 이름으로 바꾸 어 "/boot/"등의 디렉토리로
복사하고 부트로더의 설정파일에 다음과 같이 설정하면 됩니다.
]# pwd ]# /usr/src/linux-2.6/ ]# mv arch/i386/boot/bzImage /boot/bzImage/vmlinuz-2.6.5 ]# mv System.map /boot/System.map-2.6.5 ]# cd /boot ]# rm System.map ]# ln -sf vmlinuz-2.6.5 vmlinuz ]# in -sf System.map-2.6.5 System.map
/etc/grub.conf를 설정해 줍니다.
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/hda2 # initrd /initrd-version.img #boot=/dev/hda default=1 timeout=3 splashimage=(hd0,0)/grub/splash.xpm.gz title White Box Enterprise Linux (2.4.21-4.EL) root (hd0,0) kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/ initrd /initrd-2.4.21-4.EL.img title White Box Enterprise Linux (2.6.5) <----| root (hd0,0) |--추가부분 kernel /vmlinuz ro root=/dev/hda2 <----|
다시 부팅을 해봅시다.
 
추가 : 일반적으로 make bzImage -
> make modules
-> make modules_install
-> make install 순으로 하면 된다