본문 바로가기

Programing/Linux

[Linux]2.4 Kernel Compile

Redhat 9을 설치 후 SATA Drive가 지원이 되지않아, SATA를 지원하는 Kernel로 업데이트 하기로 하였습니다.
Rehdat 9의 최초 설치시 Kernel 버전은 2.4.20-8 이고, 여기에 2.4 버전대의 현재까지 최종버전인 2.4.37.5로
업데이트 하겠습니다.

1. Kernel 다운로드 & 압축풀기
[root@redhat src]# cd /usr/src
[root@redhat src]# wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.37.5.tar.gz
[root@redhat src]# tar xzvf linux-2.4.37.5.tar.gz

2. 링크 걸기
[root@redhat src]# mv linux-2.4 linux-2.4.old
[root@redhat src]# ln -s linux-2.4.37.5 linux-2.4
[root@redhat src]# ln -s linux-2.4.37.5 linux

[root@redhat src]# cd /usr/include/
[root@redhat include]# mv asm ams.old
[root@redhat include]# mv linux linux.old
[root@redhat include]# ln -s /usr/src/linux/include/asm-i386 asm
* 64비트의 경우는 ln -s /usr/src/linux/include/asm-x86_64 asm 로 해줍니다.

[root@redhat include]# ln -s /usr/src/linux/include/asm-generic asm-generic
[root@redhat include]# ln -s /usr/src/linux/include/linux linux

3. Kernel 옵션 설정
Kernl 컴파일은 Kernel 옵션을 알아야  합니다. 하지만 Kernel 옵션을 간략하게 설명하는 것도 긴글이 되므로,
여기서는 기존에 사용하던 Kernel 옵션을 방법을 사용하겠습니다.
* /boot에 config로 시작하는 파일이 기존 Kernel의 옵션이 저장되어 있는 파일입니다.
[root@redhat include]# cd /usr/src/linux
[root@redhat linux]# make mrproper

[root@redhat linux]# cp /boot/config-2.4.20-8 ./arch/i386/defconfig
* 64비트의 경우는 cp /boot/config-2.4.20-8 ./arch/x86_64/defconfig 로 해줍니다.

[root@redhat linux]# make menuconfig

make menuconfig를 입력하면 나오는 화면에서 맨 마지막줄에 한칸 윗줄의
Load an Alternate Configuration File 을 선택하시면
arch/i368/defconfig 라는 글자가 보입니다.
여기서 그냥 Enter를 눌러주시면 기존에 사용하던 Kernel 옵션이 적용됩니다.
기존 Kernel 옵션을 적용한 후 필요하신 옵션은 따로 설정해주시면 됩니다.

4. Kernel 컴파일

[root@redhat linux]# make dep
[root@redhat linux]# make bzImage
[root@redhat linux]# make modules
[root@redhat linux]# make modules_install
[root@redhat linux]# make install

여기까지 하시면, 새로운 Kernel이 적용이 되었습니다.
그러나 Redhat 9은 설치시 Drive 파티션이 LABEL로 적용되게 되어있는데, 이 문제로 인해 새로운 Kernel로 부팅이
안될 수 있습니다.
그럼, 이부분을 수정해 보도록 하겠습니다.

5. fstab 수정
[root@redhat linux]# mount

위에 명령어를 입력하면 아래와 비슷한 글자가 나올겁니다.(시스템에 따라 틀리게 나올수도 있습니다.)
/dev/hda3 on / type ext3 (rw)
/dev/hda1 on /boot type ext3 (rw)
/dev/hda2 on swap type ext3 (rw)

이걸 기억 해두시고, 이제 Hard Disk를 mount 해주는 fstab을 수정해봅시다.
[root@redhat linux]# vi /etc/fstab
* 문서 수정 프로그램은 편하신걸로 사용하시면 됩니다.

마찬가지로 위에 명령어를 입력하면 아래와 비슷한 글자가 나옵니다.(시스템에 따라 틀리게 나올수도 있습니다.)
LABEL=/                /               ext3       defaults       1 1
LABEL=/boot          /boot         ext3       defaults       1 2
LABEL=swap          swap         ext3       defaults       0 0

여기서 각줄 맨앞에 LABEL=?? 이라고 되어있는 부분을 위에 mount 명령어로 확인했던
Drive Partition으로 바꾸줍니다.
/dev/hda3          /               ext3       defaults       1 1
/dev/hda1          /boot         ext3       defaults       1 2
/dev/hda2          swap         ext3       defaults       0 0

이렇게 바꾸주고, 저장을 하신 후 재부팅을 하시면 grub화면에서 새로 추가된 Kernel 2.4.37.5 버전을
사용하실 수 있습니다.