티스토리 뷰


[결론부터 말하자면 실패!! 그러나 중간과정까지는 진행이 되어있습니다... 참고 하실분 참고하세요.]

 세상에 보면 꼭 이런 하지말아야할 변태짓을 하는 사람들이 간혹있다. 그게 나인것 같아 참...


커널2.4를 다운받아서,

make mrproper // 커널 초기화

make menuconfig // 커널 옵션 설정

make dep // 커널을 바탕으로 파일 종속성 검사

make clean // 컴파일 한 적이 있으면 이전 object 삭제

까지는 진행이 되나,

make bzImage에서는 오류를 뽑아준다.


증상은 아래의 링크와 똑같이 나온다.

http://kldp.org/node/84234 ]

make: *** [init/main.o] Error 1


위의 링크와 같이 make bzImage가 제대로 실행되지 않는다.


에러가 나는 이유는...

gcc4 버젼에서는 커널 2.4를 제대로 컴파일 하지 못한다.

http://forums.gentoo.org/viewtopic-p-3937562.html ]

그리하여... gcc34를 설치하도록 한다.


먼저 gcc를 삭제한다.

yum remove gcc

gcc34 설치

yum install compat-gcc-34


설치하면 gcc34 -v로 버젼 확인 가능.

그다음

/usr/bin 으로 들어가서

ln gcc34 gcc

로 바꿔준다. make를 사용하기 위함이다.


그러나...

http://kldp.org/node/74147 ]

위 처럼 같은 증상이 발생한다. 몇몇 글에서는 최신 커널을 사용하면 된다지만, 교수님께서 2.4라고 지정해주신 까닭에 이 또한 어쩔 수 없이 해결책을 찾아야만 했다.


kernel.org에 패치가 올라와있다.

http://www.kernel.org/pub/linux/devel/binutils/linux-2.4-seg-4.patch

이걸 다운받아서 패치하도록 하자.


패치하지 않고, 몇몇개만 바꾸겠다면, 참고링크 [ http://gema-textcube.blogspot.com/2007/11/error-suffix-or-operands-invalid-for.html ]


패치 파일을 다운받았다면, 아래의 명령어를 실행한다.,

patch -p0 < linux-2.4-seg-4.patch


이렇게 해결되는 줄 알았으나 여기서 또 문제발견.

depmod가 버젼이 최신이라(...) 2.4를 지원 안한단다.

원문을 옮겨적자면, kernel version 2.4.31 requires old depmod


또 이유를 적자면.. modutil이 설정이 되어야 하는데, 2.6부터는 module-init-tools가 사용되므로 안됩니다.

insmod --version을 통해 확인가능!

최악인건(...) kernel.org에서도 modutil을 다 지웠다는거!!! (으어어어어)

하지만 걱정말자... 소스포지에 있다.

http://sourceforge.net/projects/unwiredap/files/kernel%20modules/2.4.26-0.5.0/modules-2.4.26-0.5.0.tar.bz2/download ]

다만 wget으로 앙되므로(...) 파이어폭스를 켜서 다운로드 해주도록한다.


그러나 어떻게 해야할지 모름. 여기까지 정리(...) 나머지는 집에서 해야지.


아니면 그냥 커널2.4의 리눅스를 설치하는게 더 빠를지도 모르겠다...(...)