Download e http://www .kernel.org/pub/linux/kernel/v2.4/
Download e http://www.netfilter.org/files/
Download e http://www.oltenia.ro/download/pub/linux/bridge/
[root@sunny SRPM]# rpmbuild --rebuild kernel-2.4.20-8.src.rpm
[root@sunny i386]# rpm -Uvh kernel-source-2.4.20-8.i386.rpm
[root@sunny i386]# rpm -Uvh kernel-BOOT-2.4.20-8.i386.rpm
[root@sunny i386]# rpm -Uvh kernel-doc-2.4.20-8.i386.rpm
[root@sunny tmp]# tar zxvf linux-2.6.5.tar.gz -C /usr/src/
[root@sunny src]# cd linux-2.6.5/
풀린 리눅스 커널 소스 디렉토리를 linux로 심볼릭 링크 합니다
[root@sunny src]# ln -s linux-2.6.5 linux
[root@sunny src]# cd /usr/src/linux
Patch 파일을 이용하여 커널을 Patch 합니다
[root@sunny linux]# patch -p1 < /usr/local/src/bridge-nf-0.0.8-against-2.6.5.ddff
[root@sunny linux]# make mrproper
Kernel Option 을 설정한다.
만약 콘솔모드에서 설정한다면 다음 명령을 이용한다.
[root@sunny linux]# make menuconfig
그리고 x-windows 모드에서 설정한다면 다음 명령을 이용하면 된다.
[root@sunny linux]# make xconfig
여기에서 변경해야 할 주요 항목은 “Networking options”와 “Network device support 이다.
“y”는 커널에 포함시키는 항목이며, “m”은 module로 분리하며, “n”은 커널이나, module로 포함하지 않는 의미한다.
. “Packet socket”, “Network packet filter (replace ipchains)”+ “Socket Filtering”, + “Unix domain sockets”, + “TCP/IP networking”, “IP: multicasting” 이 부분을 내 시스템 보안과 네트워크 상태에 다라서 변경해 주어야 한다.
그리고 설정 내용을 저장해 주고 나온다.
컴파일을 위한 의존성 관계를 설정합니다
[root@sunny linux]# make dep
만약 이전에 커널 컴파일을 진행하였다면 이전에 수행했던 컴파일과정에서 생성된 오브젝트 파일(*.[oas]), 커널, 임시파일(.tmp*), 설정값(configure) 등을 삭제합
[root@sunny linux]# make clean
압축된 커널 이미지를 만듭니다. I(아이)를 대문자로 써야합니다.
[root@sunny linux]# make bzImage
Root device is (3, 6)
Boot sector 512 bytes.
Setup is 4991 bytes.
System is 1126 kB
Kernel: arch/i386/boot/bzImage is ready
기존의 module을 삭제합니다.
[root@sunny linux]# rm -rf /lib/modules/2.4.20-8/
[root@sunny linux]# make modules
[root@sunny linux]# make modules_install
모듈 사이의 의존성을 검사하여 /lib/modules 디렉토리 아래 modules.dep 파일을 만듭니다.
[root@sunny linux]# depmod -a 2.4.19
새로운 부트 이미지와 map 파일을 복사합니다.
[root@sunny linux]# cp arch/i386/boot/bzImage /boot/vmlinuz-2.5.6
[root@sunny linux]# cp System.map /boot/System.map-2.5.6.map
부팅 하드 디스크가 SCSI 이라면 initrd 이미지도 새롭게 만들어야 합니다.
[root@sunny boot]# mkinitrd /boot/initrd-2.5.6.img 2.5.6
boot 디렉토리로 이동 후 기존의 심볼릭 링크된 부트이미지와 map 파일을 삭제합니다
[root@sunny linux]# cd /boot
[root@sunny boot]# rm -rf vmlinuz
[root@sunny boot]# rm -rf System.map
새로운 부트이미지와 map 파일로 심볼릭 링크를 합니다.
[root@sunny boot]# ln -s vmlinuz-2.5.6 vmlinuz
[root@sunny boot]# ln -s System.map-2.5.6 System.map
lilo 설정 파일을 수정합니다.
[root@sunny boot]# vi /etc/lilo.conf
prompt
timeout=50
default=linux e default=linux-2.5.6
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
lba32
image=/boot/vmlinuz-2.4.20-8
label=linux
initrd=/boot/initrd-2.4.20-8.img
read-only
append="hdc=ide-scsi root=LABEL=/"
e 다음 내용을 추가
image=/boot/vmlinuz-2.5.6
label=linux-2.5.6
initrd=/boot/initrd-2.5.6.img
read-only
append="hdc=ide-scsi root=LABEL=/"
lilo를 실행하여 수정한 lilo.conf 설정파일의 설정을 적용시킨다.
[root@sunny boot]# lilo
Bridge Utils 설치
[root@linuxclub tmp]# rpmbuild --rebuild bridge-utils-0.9.3-8.src.rpm..rpm
[root@linuxclub ko]# rpm -Uvh bridge-utils-0.9.3-8.i386.rpm
[root@linuxclub ko]# rpm -Uvh bridge-utils-devel-0.9.3-8.i386.rpm
[root@linuxclub ko]# rpm -Uvh bridge-utils-debuginfo-0.9.3-8.i386.rpm
[root@sunny tmp]# tar xvfz bridge-utils-1.0.tar.gz
[root@sunny tmp]# cd bridge-utils-1.0
[root@sunny bridge-utils-1.0]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man
[root@sunny bridge-utils-1.0]# make
[root@sunny bridge-utils-1.0]# make install
iptables 설치
[root@linuxclub tmp]# rpmbuild --rebuild iptables-1.2.7a-2.src.rpm..rpm
[root@linuxclub RPMS]# rpm -Uvh iptables-1.2.7a-2.i386.rpm
[root@linuxclub RPMS]# rpm -Uvh iptables-debuginfo-1.2.7a-2.i386.rpm
[root@linuxclub RPMS]# rpm -Uvh iptables-ipv6-1.2.7a-2.i386.rpm
[root@linuxclub iptables-1.1.2]# make
[root@linuxclub iptables-1.1.2]# make install