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-8)
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 드라이버를 설정해주니 인터넷도 되는군요.
리눅스의 아무런 구조도 모른채 오로지 에러 해결에만 신경썼기 때문에
엉망이지만 저같은 초보분들 시간 낭비를 조금이라도 줄여드리고자
글을 썼습니다. 부디 많은 도움되시기 바라겠습니다.
귀중한 글 감사드립니다.---------- 오만
귀중한 글 감사드립니다.
---------- 오만한 리눅서----------
간단한게 아니구나..
간단한게 아니군요..
좋은 정보 감사합니다..
rpm같으면 그냥 Uvh -_-;하하;
아직도...
Re: RH9 기반 커널 2.4 -> 2.6 으로 업그레이드 하기.
대단하시네요..
댓글 달기