'Linux/Kernel'에 해당되는 글 3건

  1. 2010.03.03 커널 컴파일(kernel compile - make install) 에러
  2. 2010.03.03 make menuconfig 에러
  3. 2009.08.28 LXR(Linux Cross-Reference)
2010. 3. 3. 01:02

커널 컴파일(kernel compile - make install) 에러



2.6.4 커널을 가지고 "make install" 명령을 입력하면 쭈욱 쭈욱 컴파일을 해나간다.
컴파일을 시작한지 얼마 되지도 않았는데..
아래와 같은 에러 메시지가 출력됐다... -_-;
# make install
...
  CC      arch/i386/kernel/process.o
{standard input}: Assembler messages:
{standard input}:104: Error: suffix or operands invalid for `mov'
{standard input}:105: Error: suffix or operands invalid for `mov'
{standard input}:765: Error: suffix or operands invalid for `mov'
{standard input}:766: Error: suffix or operands invalid for `mov'
{standard input}:982: Error: suffix or operands invalid for `mov'
{standard input}:983: Error: suffix or operands invalid for `mov'
{standard input}:1072: Error: suffix or operands invalid for `mov'
{standard input}:1073: Error: suffix or operands invalid for `mov'
{standard input}:1151: Error: suffix or operands invalid for `mov'
{standard input}:1163: Error: suffix or operands invalid for `mov'
make[1]: *** [arch/i386/kernel/process.o] 오류 1
make: *** [arch/i386/kernel] 오류 2

이 에러에 대한 해결책은 아래 링크를 참조하면 될 듯 하다.
http://www.linuxquestions.org/questions/linux-from-scratch-13/problem-while-make-kernel-343910/
# wget http://www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch
# patch -Np1 -i linux-2.6-seg-5.patch

패치 후 "make install"을 하면 정상적인 컴파일이 이루어지고, "arch/i386/boot/bzImage"를 얻을 수 있다.

구 버전의 커널에서 일어나는 현상인듯 한데.. 정확한건 잘 모른다.
kldp.org(http://kldp.org/node/74510) 에서는, 2.6.18 버전 커널의 경우 커널 컴파일이 에러 없이 동작하는데.. 2.6.9 버전 커널의 경우에는 동일한 에러가 발생한다고 한다.
답변은.. "구버전커널이시군요. 신버전커널 받아서 해보시죠" 이다. -_-;;



'Linux > Kernel' 카테고리의 다른 글

make menuconfig 에러  (0) 2010.03.03
LXR(Linux Cross-Reference)  (0) 2009.08.28
2010. 3. 3. 00:12

make menuconfig 에러



2.6.4 버전의 커널에서 "make menuconfig" 하는 도중 아래와 같은 에러 발생.. -_-;
...
HOSTCC  scripts/kconfig/mconf.o
scripts/kconfig/mconf.c:91: error: static declaration of ‘current_menu’ follows non-static declaration
scripts/kconfig/lkc.h:63: error: previous declaration of ‘current_menu’ was here
make[1]: *** [scripts/kconfig/mconf.o] 오류 1
make: *** [menuconfig] 오류 2

4.x 버전대의 gcc로 컴파일을 하면 에러가 발생하는 모양이다.
해결책은 3.x 버전의 gcc로 갈아탄 후 컴파일을 하는 것이다.
본인의 경우 3.4.6 버전의 gcc를 사용해 make menuconfig를 실행한 결과 위와 같은 에러메시지는 보이지 않고 정상적으로 동작을 했다.

다른 방법으로는 "scripts/kconfig/mconf.c" 파일의 91번째 라인에서 "static" 키워드를 제거하면 된다.
...
//static struct menu *current_menu;
struct menu *current_menu;
...


'Linux > Kernel' 카테고리의 다른 글

커널 컴파일(kernel compile - make install) 에러  (0) 2010.03.03
LXR(Linux Cross-Reference)  (0) 2009.08.28
2009. 8. 28. 14:29

LXR(Linux Cross-Reference)



'LXR' 이라고 리눅스 커널 소스를 볼 때 아주 유용한 사이트가 있다.

리눅스 커널 버전별로 정리가 되어있고, 각 함수라든지, 변수 등이 링크되어있어 편하게 소스를 분석할 수 있다.
사실 편하긴 하지만 소스 분석하는것이 쉬운것은 절대 아닌듯 하다. -_-;;

온라인에서 뿐만 아니라 'LXR' 이라는 툴을 리눅스 기계에 설치해서 커널 소스 이외에도 다른 프로젝트들을 lxr 사이트처럼 문서화 해서 사용할 수 있다고 한다.
왜 나만 모르는 듯한 기분이 드는건지.. -_-;

오픈소스쪽에 가면 정말이지 생각도 못한 툴이나 프로그램들이 넘쳐나는 듯 하다.
무식이 죄라는 말.. 한번 더 공감!!

'Linux > Kernel' 카테고리의 다른 글

커널 컴파일(kernel compile - make install) 에러  (0) 2010.03.03
make menuconfig 에러  (0) 2010.03.03