커널 컴파일

* ipset 6.2 버전을 사용하기 위해서는 리눅스 커널 2.6.32 컴파일이 필요합니다.

// 공식 홈 참조.. ㅠㅠ http://ipset.netfilter.org/install.html
// linux kernel source code (version >= 2.6.32)

>참고사이트
http://lpbox.co.kr/lp/read.php?id=Linux&main_No=60&sub_No=AAAAA
http://kldp.org/node/109627
1. kernal compile..

1) 컴파일 도구 설치
yum install gcc
yum install ncurses-devel
yum install rpm-build
yum install bison
yum install depmod
yum install mkinitrd

2) 컴파일 소스 다운로드

https://www.kernel.org/pub/linux/kernel/
wget https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.gz

[Msnote, /usr/local/src >tar zxvf linux-2.6.32.tar.gz
[Msnote, /usr/local/src >ln -s linux-2.6.33 linux
[Msnote, /usr/local/src >cd linux
[Msnote, /usr/local/src/linux >make clean
[Msnote, /usr/local/src/linux >make mrproper
[Msnote, /usr/local/src/linux >cp /boot/config-현재커널 버전 ./.config
[Msnote, /usr/local/src/linux >make menuconfig
[Msnote, /usr/local/src/linux >make && make modules && make modules_install && make install

* ipset 를 사용하기 위해서는 어떤 항목을 체크 해야 되는지 알지 못 하였음 -0-;; 일단 기본 설정값으로 저장하고 나왓음요;; 아시는분 코맨트좀..
======================================================================
//http://lpbox.co.kr/lp/read.php?id=Linux&main_No=60&sub_No=AAAAA 에서 아래 내용을 참고하였습니다
* 현재 구동중인 커널의 환경정보를 기준으로 커널을 컴파일 하기 위하여 cp /boot/config-현재커널 버전 ./.config 를 함

이제 핵심!!!
메뉴 하단에 Load an Al ternate Configuration File을 선택
.config 파일이 입력되어 있는데, 이를 선택하여 현재 커널 환경을 불러들임
이후
General Setup —> enable deprecated sysfs features which may confuse old usersp 를 Y키를 눌러 *로 활성화 시킨다.
이후 저장하여 메뉴 환경 설정 메뉴에서 탈출!!
또는 .config 파일에서 CONFIG_SYSFS_DEPRECATED_V2=y
로 설정

이를 하지 않고 부팅시 insmod: error inserting ‘/lib/dm-region-hash.ko’: -1 File exists라는 메세지와 함께 커널 패닉!!
설정하더라도 같은 메세지는 나오지만 패닉없이 잘 넘어감
======================================================================
// 시간좀 걸림…..

Provides: kernel-2.6.32
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/kernel-2.6.32-root
작성: /usr/src/redhat/SRPMS/kernel-2.6.32-1.src.rpm
작성: /usr/src/redhat/RPMS/x86_64/kernel-2.6.32-1.x86_64.rpm
// 일단 완료

============================= .config 복사 한것이라면~아래는 안해두됨===============
[Msnote, /usr/local/src/linux-2.6.32 >cd /usr/src/redhat/RPMS/x86_64/
kernel-2.6.32-1.x86_64.rpm <<– 이거있을거임 ( CPU에따라 디렉토리명이 달라짐 ex : 32bit = i386 요딴식)

// 설치 의존성 에러 방지를 위해 –nodeps 옵션 이용
[Msnote, /usr/src/redhat/RPMS/x86_64 >rpm -ivh –nodeps kernel-2.6.32-1.x86_64.rpm
준비 중… ########################################### [100%]
1:kernel ########################################### [100%]

// 설치 완료 후 ramdisk 를 수동으로 만들어야함, 부팅을위해~
[Msnote, /usr/src/redhat/RPMS/x86_64 >cd /boot/
[Msnote, /boot >mkinitrd kernel-2.6.32-1.img kernel-2.6.32-1
// mkinitrd [커널버전.img] [커널버전] 요딴식 사용
[Msnote, /boot >mkinitrd initrd-2.6.32.img 2.6.32
// initrd-2.6.32.img System.map-2.6.32 vmlinuz-2.6.32 등등 생성된것을 확인 할 수 있다
======================================================================
3) grub.conf 설정 // 이것두 확인만하셈
[Msnote, /boot >vi /etc/grub.conf
default = << 뒷부분 숫자 변경해야됨 위에서부터 0 1 2 차례차례

=============================================
title CentOS (2.6.32)
root (hd0,0)
kernel /vmlinuz-2.6.32 ro root=LABEL=/1
initrd /initrd-2.6.32.img
==============================================
[Msnote, /boot >reboot // 자신있게 리부팅을!

[Msnote, ~ >uname -a
Linux Msnote 2.6.32 #1 SMP Thu Oct 17 10:12:43 KST 2013 x86_64 x86_64 x86_64 GNU/Linux
ㅋㅋㅋㅋ ㅅㄱㅇ!

 

 

 

 

 

Leave your Comment

Your email address will not be published. Required fields are marked *