CentOS SRPM Kernel Build (커널빌드)
1. 먼저 yum을 이용해 개발 툴들을 설치한다. 일일이 설치 할 수도 있겠지만 yum groupinstll을 이용하자.
# yum groupinstall “Development Tools”
2. 내가 현재 사용하고 있는 커널이 어떤 것인지 확인하자
# uname -a
3. 현재 버전에 맞는 소스 rpm을 다운로드 받아서 설치하자. 각자 알맞은 커널소스로
#wget http://mirror.centos.org/centos-4/4/updates/SRPMS/kernel-2.6.9-42.0.3.EL.src.rpm
#rpm -iv kernel-2.6.~~~~~.rpm
4. 현재 커널의 아카이브를 설정하자. 아마 보통 i686 이나 x86_64정도의 값을 가지게 될 것이다.
#cd /usr/src/redhat/SPECS
#ln -s kernel-2.6.spec kernel.spec
#rpmbuild -bp –target=`uname -m` kernel.spec
5. 기존 패키지 커널 설정을 가지고 오자.
#cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
#cp /usr/src/redhat/SOURCES/kernel-2.6.9-i686-smp.config ./.config
6. 커널 설정을 바꾸자.
# make menuconfig
7.바꾼 설정을 기존의 패키지 설정으로 복사하자. (커널과 맞는걸 선택하자)
#cp ./.config /usr/src/redhat/SOURCES/kernel-2.6.9-i686-smp.config
9. rpm의 스펙을 수정한다.
#cd /usr/src/redhat/SPECS
#vi kernel.spec
10. release의 이름을 바꾼다.
%define release 42.0.3.EL
을 찾아서
%define release 42.0.3.jaewon //jaewon은 원하는 것으로.
로 바꾼다.
11. 패치가 있으면 패치를 추가한다.
Patch40000: irdeal.patch
%patch40000 -p1
위의 두줄을 적당한 곳에 추가한다.. 적당한 곳이란 spec파일에서 Patch 와 %patch를 검색해 보면 알 수 있을 것이다
12. rpm을 만든다.
#rpmbuild -ba –target=`uname -m` kernel.spec
13. 만들어진 rpm을 확인하고 설치한다.
#cd /usr/src/redhat/RPMS/i686
#rpm -ivh kernel-smp-2.6.9-42.0.3.EL.irdeal.i686.rpm