리눅스 커널 업데이트 후에도 (2.4 -> 2.6) 여전히 버전이 2.

yaru22의 이미지

저도 이제 리눅스 시작한지 일주일정도 된 초봅니다. 레드햇 9 쓰고요...
그런데 커널을 2.4에서 2.6으로 업그레이드 시키고 싶어서 게시판을 찾던 도중 어떤 분이 쓰신 글을 봤어요.

Quote:

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

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-Cool
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 드라이버를 설정해주니 인터넷도 되는군요.

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

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

글을 썼습니다. 부디 많은 도움되시기 바라겠습니다.

아주 자세하게 설명해 주셔서 저도 설치 하면서 그리 큰 문제 없이 다 통과한것 같았습니다.

그런데 설치 다하고 재부팅 한 후에 터미널 띄워서
uname -r 하니깐 ;; 여전히 kernel 버전이 2.4로 나오던데
왜그런지 아시나요?

중간에 설치할때 make bzImage 랑 make modules 에서 시간 엄청 잡아먹던데 ㅡ.ㅡ;; 업데이트 안된거라면 대략 난감 ㅋ

뭐가 잘못ㅤㄷㅚㅆ는지 아시는분은 답변해주세요 ^^ 감사합니다.

realcns의 이미지

아마도 부트로더에서의 설정이 안되어 있는것 같습니다.

레드헷 9.0 이면 lilo를 사용하실것 같은데..

부트로더 설정 변경(새로 추가한 커널 부분)
부분을 찾아보셔야 할것 같습니다.
:D

모든 OS를 사용해보자~!!
-놀고먹는백수가 되고 싶은 사람-

fender의 이미지

음... 자동차에 비유하면 일단 하시고 싶으신 것이 운전인지 자동차 정비인지 확실히 알아야지 적절한 답변을 드릴 수 있을 것 같습니다.

만약 원하시는 것이 운전이시라면 저런 문제는 자동차 업체에서 권장하는 대로 지정 수리센터에 맡기시면 끝입니다. 인용하신 설명은 직접 차량 부품을 다 구해서 엔진 다 뜯어내고 차를 하나 개조해서 만들어 타는 수준의 작업입니다.

물론 차가 단종이 되서 순정 부품이 더 이상안나올 수 있는데 그럴 땐 어쩔 수 없이 새차로 바꿔야 겠지요.

한 마디로 리눅스 내부 구조에 관심이 있으신 것이 아니고 리눅스 활용에 관심을 가지고 계시다면, 커널 업데이트나 프로그램 설치는 배포판에서 제공해주는 방식을 따르는 것이 제일 좋다는 뜻입니다.

요즘 배포판들은 대부분 커널 업그레이드 조차 마우스 클릭으로 자동으로 됩니다. 가끔 일반 사용자 분 중에도 커널은 직접 빌드해 쓰시는 경우도 있지만 배포판 마다 고유의 패치가 있는 경우도 있고 초보 입장에서 그렇게 커널을 빌드해서 배포판 버전보다 성능이 좋다고 보장도 안되기 때문에 별 의미가 없는 작업입니다.

그리고 레드햇9의 경우 리눅스 배포판의 핵심적 기능인 중앙 저장소를 통한 패키지 관리가 더 이상 지원되지 않습니다. 이런 경우 설명 중에도 여러 핵심 패키지를 업그레이드 하는 과정이 있는데 이런 작업이 상당히 까다롭습니다.

결론적으로 만약 리눅스를 뜯어보시는 것이 목적이 아니라 리눅스를 설치해서 활용해 보시려 한다면 가능하면 최신 배포판을 이용하시면 자연히 문제가 해결될 것 같습니다.

혹시라도 '리눅스 9.x 따라하기' 어쩌고 하는 책을 보고 계시다면... 그냥 버리거나 베개로 활용하세요 :)

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

yaru22의 이미지

fender wrote:
음... 자동차에 비유하면 일단 하시고 싶으신 것이 운전인지 자동차 정비인지 확실히 알아야지 적절한 답변을 드릴 수 있을 것 같습니다.

저는 위의 비유에 의한다면 하고 싶은것이 자동차 정비에 해당합니다.
리눅스를 사용해서 하고 싶었던 것이 "운전"이었다면 그냥 윈도우 쓰고 있었을껍니다 ^^ㅋ

커널 업그레이드 도전해 봄으로써 뭔가 배울 수 있을까 해서 시도해본거였구요. 하면서 뭐 리눅스 내부에 대해서 까지는 자세히 배우지 못했더라도 명령어 몇개는 좀 익힌거 같네요 :)

그나저나 ㅡ.ㅡ;; 제 리눅스 커널 업그레이드가 안된것만 문제가 아니고, 랜카드까지도 못잡는것 같네요 (방금전에서야 알았음 ;)

제 문제점에 대한 조언 부탁드리고요,
리눅스 내부구조에 대해 잘 알려면 어떤식으로 공부하는게 좋은지도 조언 부탁드립니다.
그냥 kldp wiki 에서 리눅스 커널부분 (꼭 커널부분만이 아니고 다른 부분들도 다~) 정독해봐야 하나요 ;? 읽어보려고 열어는 봤는데 이해하기 힘든 부분들도 많이 있더라고요 ㅜ.ㅜ
이해 당장은 못해도 쭉 다 읽어보면 도움이 되려나요?

fender의 이미지

yaru22 wrote:
저는 위의 비유에 의한다면 하고 싶은것이 자동차 정비에 해당합니다.
리눅스를 사용해서 하고 싶었던 것이 "운전"이었다면 그냥 윈도우 쓰고 있었을껍니다 ^^ㅋ

커널 업그레이드 도전해 봄으로써 뭔가 배울 수 있을까 해서 시도해본거였구요. 하면서 뭐 리눅스 내부에 대해서 까지는 자세히 배우지 못했더라도 명령어 몇개는 좀 익힌거 같네요 :)

그나저나 ㅡ.ㅡ;; 제 리눅스 커널 업그레이드가 안된것만 문제가 아니고, 랜카드까지도 못잡는것 같네요 (방금전에서야 알았음 ;)

제 문제점에 대한 조언 부탁드리고요,
리눅스 내부구조에 대해 잘 알려면 어떤식으로 공부하는게 좋은지도 조언 부탁드립니다.
그냥 kldp wiki 에서 리눅스 커널부분 (꼭 커널부분만이 아니고 다른 부분들도 다~) 정독해봐야 하나요 ;? 읽어보려고 열어는 봤는데 이해하기 힘든 부분들도 많이 있더라고요 ㅜ.ㅜ
이해 당장은 못해도 쭉 다 읽어보면 도움이 되려나요?


그렇군요. 사실 어제도 서점에 들렀다가 '리눅스 9.x 완전정복' 비슷한 이름의 무지하게 두꺼운 책을 본지라; 노파심이 동했나 봅니다. :) 그렇지만 리눅스로도 '운전'은 윈도우즈 못지 않게 잘된다는 건 말씀 드리고 싶군요...

일단 커널 설치 후 적용이 안되는 부분은 윗 분 말씀대로 환경에 따라 Lilo나 Grub 설정을 확인하시면 됩니다. 랜카드는 말씀만 듣고는 dmesg를 확인하시라는 것이 외에 특별히 조언드리기가 어렵군요.

생각만 있으시면 젠투를 스테이지 1부터 설치해 보시거나 아예 LFS(Linux from Scratch)를 시도해보셔도 좋습니다. 사실 제 자신은 일반 사용자의 관점에서 리눅스 활용에 더 관심이 많기 때문에 리눅스 공부를 많이 하신 다른 분들이 더 좋은 답변을 해주실 지 모르겠습니다.

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.