리눅스 접한지 일주일 된 초보입니다.
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 드라이버를 설정해주니 인터넷도 되는군요.
리눅스의 아무런 구조도 모른채 오로지 에러 해결에만 신경썼기 때문에
엉망이지만 저같은 초보분들 시간 낭비를 조금이라도 줄여드리고자
글을 썼습니다. 부디 많은 도움되시기 바라겠습니다.
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 드라이버를 설정해주니 인터넷도 되는군요.
리눅스의 아무런 구조도 모른채 오로지 에러 해결에만 신경썼기 때문에
엉망이지만 저같은 초보분들 시간 낭비를 조금이라도 줄여드리고자
글을 썼습니다. 부디 많은 도움되시기 바라겠습니다.




