RH9 기반 커널 2.4 -> 2.6 으로 업그레이드 하기

리눅스 접한지 일주일 된 초보입니다.

lego IR Tower usb 를 사용해야 하는 관계로 커널을 2.4에서 2.6 으로

업그레이드 하는데 일주일간 온갖 난관에 부딪혔습니다.

리눅스를 처음 접하는 분들께 커널 업그레이드 시 제가 겪었던 문제와

해결책을 적어 보겠습니다. 하지만 이는 근본적인 해결책이 아니라 에러와

failed 없이 리눅스를 띄우는 정도임을 알아주시기 바랍니다.

1. 커널 다운 받기 및 설치하기

ftp://ftp.kernel.org/pub/linux/kernel/v2.6/

위의 주소에서 커널을 다운 받은 후 /usr/src 에서 압축을 풉니다.

저는 2.6.10 버젼을 다운 받았기 때문에 /usr/src/linux-2.6.10 이

되었습니다.

이제 /usr/src/linux-2.6.12.2/Documentation/ 로 가서

Changes 를 참고하여 버젼에 맞는 유틸리티로 업그레이드 합니다.

o Gnu C 2.95.3 # gcc --version
o Gnu make 3.79.1 # make --version
o binutils 2.12 # ld -v
o util-linux 2.10o # fdformat --version
o module-init-tools 0.9.10 # depmod -V
o e2fsprogs 1.29 # tune2fs
o jfsutils 1.1.3 # fsck.jfs -V
o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs y
o xfsprogs 2.6.0 # xfs_db -V
o pcmcia-cs 3.1.21 # cardmgr -V
o quota-tools 3.09 # quota -V
o PPP 2.4.0 # pppd --version
o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
o nfs-utils 1.0.5 # showmount --version
o procps 3.2.0 # ps --version
o oprofile 0.5.3 # oprofiled --version

2.6.10 의 경우 위와 같습니다.

* module-init-tools 의 경우 위가 표기가 잘못되었습니다. 3.0 이상

버젼을 받으시기 바랍니다.

위의 유틸을 받아서 설치하는데 특히 주의 해야할 사항이 module-init-tools

입니다. 커널이 2.4 에서 2.6으로 바뀌면서 모듈을 로딩하는 방식이 틀려져

많은 에러를 접했습니다. 대표적으로 QM_MODULE not implemented~~

라는 에러를 module-init-tools 를 제대로 설치함으로써 해결했습니다.

module-init-tools 의 설치 법은 아래와 같습니다.

./configure --prefix=/
make moveold
./configure
make links
make
make install
./generate-modprobe.conf /etc/modprobe.conf
depmod 2.6.10

저는 위와 같이 커맨드를 입력해 설치했습니다.

이제 다시 커널을 설치하겠습니다.

cd /usr/src/linux-2.6.10
make xconfig

를 실행하면 옵션 화면이 나오는데 전 디폴트 옵션에서

ext3 를 모듈로 설정하니 커널 패닉이 되어서 이를 v 표시인 커널안으로

집어넣었습니다.

그리고 ntfs 를 모듈로 설치, lego IR Tower 를 모듈로 설치했습니다.

이 외에는 특별히 손댄 부분이 없이 save 를 합니다.

make bzImage && make modules && make modules_install

커맨드를 위와같이 입력해 커널을 bzImage 로 만듭니다.

한참을 기다려서 다시 입력창이 뜨게 되면 아래와 같이 입력합니다.

# mv arch/i386/boot/bzImage /boot/bzImage-2.6.10
# mv System.map /boot/System.map-2.6.10
# cd /boot
# rm System.map
# ln -s System.map-2.610 System.map

2. grub 설정하기

위와 같이 함으로써 boot 에 새로운 커널 이미지가 생겼습니다.

이제 grub 를 설정합니다.

/boot/grub 안에 있는 grub.conf 를 에디팅 하면 됩니다.

default=1
timeout=10
splashimage=(hd0,7)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-
root (hd0,7)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ hdc=ide-scsi
initrd /initrd-2.4.20-8.img
title DOS
rootnoverify (hd0,0)
chainloader +1
title Red Hat Linux (2.6.10)
kernel /bzImage-2.6.10 ro root=/dev/hda10

첫번째는 2.4 커널은 img 파일을 생성했을때 저런식으로 자동으로 입력

되었고 전 2.6 커널을 위와같이 설정했습니다. 전 root 가 hda10 에

잡혀있기 때문에 위와 같이 입력했습니다.

전 boot 파티션이 따로 있기 때문에 위와 같이 입력했고 만약

boot 파타션이 따로 없으시다면 kernel /boot/bzImage/..

와 같이 입력하시면 됩니다.

3. 오류 수정하기

위와 같이 실행하여 리눅스 커널이 부팅이 되긴 했는데

각종 failed 가 뜹니다.

여기 저기 문서를 뒤져보니 레드헷 9.0 기반에서는 /etc/rd.d 안에 있는

rc.sysinit 파일을 수정해 주어야 합니다.

바꾸기 명령으로 ksyms -> kallsyms 로 다 교체해 줍니다.

또 usbdevfs -> usbfs 로 바꾸어 줍니다.

그리고 hid 를 찾아서 usbhid 로 바꾸어 줍니다.

전 usb 용 키보드와 마우스를 사용하지 않는 관계로 mousedev 와

keybdev 는 # 로 사용중지 시켰습니다.

4. 마무리

위와 같이 설정하니 failed 가 하나도 없이 부팅이 됩니다.

전 NF7-2.0 보드를 사용하기 때문에 www.nvidia.com 에서 linux 용

ethernet 드라이버를 설정해주니 인터넷도 되는군요.

리눅스의 아무런 구조도 모른채 오로지 에러 해결에만 신경썼기 때문에

엉망이지만 저같은 초보분들 시간 낭비를 조금이라도 줄여드리고자

글을 썼습니다. 부디 많은 도움되시기 바라겠습니다.
by 비니 | 2005/11/08 20:44 | scrap for dev | 트랙백 | 덧글(1)
트랙백 주소 : http://deneb.egloos.com/tb/1913151
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 빡창 at 2008/06/03 20:54
덕분에 잘 배워갑니다. 스크랩해갑니다^^

:         :

:

비공개 덧글