커널 2.4.7 컴파일할때 에러나서.. ...헬프 미!

leeysa의 이미지

커널 2.4.7을 필요하게 되서

kernel.org에서 받아와서 컴파일 도중에

다음과 같은 에러가 납니다. make dep에서는

전혀 안뿌리더니~

다음과 같습니다.

make[1]: 나감 `/root/work/linux/arch/i386/kernel' 디렉토리
make CFLAGS="-D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 " -C arch/i386/mm
make[1]: 들어감 `/root/work/linux/arch/i386/mm' 디렉토리
make all_targets
make[2]: 들어감 `/root/work/linux/arch/i386/mm' 디렉토리
gcc -fno-stack-protector -D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -c -o init.o init.c
gcc -fno-stack-protector -D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -c -o fault.o fault.c
gcc -fno-stack-protector -D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -c -o ioremap.o ioremap.c
gcc -fno-stack-protector -D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -c -o extable.o extable.c
rm -f mm.o
ld -m elf_i386 -r -o mm.o init.o fault.o ioremap.o extable.o
make[2]: 나감 `/root/work/linux/arch/i386/mm' 디렉토리
make[1]: 나감 `/root/work/linux/arch/i386/mm' 디렉토리
make CFLAGS="-D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 " -C arch/i386/lib
make[1]: 들어감 `/root/work/linux/arch/i386/lib' 디렉토리
make all_targets
make[2]: 들어감 `/root/work/linux/arch/i386/lib' 디렉토리
gcc -fno-stack-protector -D__ASSEMBLY__ -D__KERNEL__ -I/root/work/linux/include -c checksum.S -o checksum.o
gcc -fno-stack-protector -D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -c -o old-checksum.o old-checksum.c
gcc -fno-stack-protector -D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -c -o delay.o delay.c
gcc -fno-stack-protector -D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -c -o usercopy.o usercopy.c
gcc -fno-stack-protector -D__ASSEMBLY__ -D__KERNEL__ -I/root/work/linux/include -c getuser.S -o getuser.o
gcc -fno-stack-protector -D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -c -o memcpy.o memcpy.c
gcc -fno-stack-protector -D__KERNEL__ -I/root/work/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -c -o strstr.o strstr.c
rm -f lib.a
ar rcs lib.a checksum.o old-checksum.o delay.o usercopy.o getuser.o memcpy.o strstr.o
make[2]: 나감 `/root/work/linux/arch/i386/lib' 디렉토리
make[1]: 나감 `/root/work/linux/arch/i386/lib' 디렉토리
ld -m elf_i386 -T /root/work/linux/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o \
--start-group \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/ide/idedriver.o drivers/cdrom/driver.o drivers/sound/sounddrivers.o drivers/pci/driver.o drivers/mtd/mtdlink.o drivers/video/video.o drivers/usb/usbdrv.o \
net/network.o \
/root/work/linux/arch/i386/lib/lib.a /root/work/linux/lib/lib.a /root/work/linux/arch/i386/lib/lib.a \
--end-group \
-o vmlinux
local symbol 0: discarded in section `.text.exit' from drivers/char/char.o
local symbol 1: discarded in section `.text.exit' from drivers/net/net.o
local symbol 2: discarded in section `.text.exit' from drivers/sound/sounddrivers.o
local symbol 3: discarded in section `.text.exit' from drivers/mtd/mtdlink.o
local symbol 4: discarded in section `.text.exit' from drivers/video/video.o
local symbol 5: discarded in section `.text.exit' from drivers/usb/usbdrv.o
make: *** [vmlinux] 오류 1

혹시 이런 경험 잇으신분은 도움 좀 부탁드립니다.

그럼 모두 즐거운 리눅스 하세요^^ 추가로 말씀드리자면 free bios를

쓸려고 다운을 받았더니 요 커널을 패치해서 올리라더군요 ㅡㅡ

codebank의 이미지

LINUX커널의 경우에는 반드시 /usr/src/linux에 소스를 설치해야합니다.
만일 여러개의 커널 소스가 있고 이것을 관리하고자 한다면 다음과 같이 하십시요.
일단 커널 소스를 /usr/src/ 디렉토리아래 풀어놓습니다.
이렇게 풀린 소스는 linux-2.6.7 과 같은 디렉토리에 풀리게 됩니다.
이제 소스를 컴파일하기전에 다음과 같이 하세요.

# ls /usr/src/
linux@   linux-2.6.10/ linux-2.6.7/ linux-2.6.9/
# rm -f /usr/src/linux
# ln -sf /usr/src/linux/linux-2.6.7 /usr/src/linux
# cd /usr/src/linux
# make menuconfig
...

위에 ls하신후에 linux@가 있다면 rm으로 지우시고 없다면 그냥 링크만 설정하세요.
커널 컴파일은 /usr/src/linux에서 해야만 합니다.
작업이 끝나면 반드시 현재 사용하는 버젼으로 돌려놓는 것이 좋습니다.
왜냐하면 새로운 프로그램을 설치할 때(모듈로 설치시) 현재 커널의 소스를 참조
해야만 하는데 설치된 커널과 소스가 맞지 않는다면 문제가 발생할 수도 있습니다.
------------
leeysa wrote:
그럼 모두 즐 니눅스 하세요^^

지나친 통신언어는 모잘라는 것보다 못합니다. 은 초등학생들이 사용하는
단어로 별로 좋은 의미가 아닙니다.
다음부터는 그냥 풀어서 즐거운 이라고 써주셨으면 합니다.

------------------------------
좋은 하루 되세요.

leeysa의 이미지

아~ 제가 쓸데 없는 말을 썼더군요. 죄송합니다. ㅠㅠ; 답변 감사 합니다. 하지만 똑같은 에러를 내더군요. 제 생각에는 디렉토리의 링크 문제가 아닌것 같습니다. ㅠㅠ; 다른 방법을 찾아 봐야 겠습니다.

Hyun의 이미지

codebank wrote:
LINUX커널의 경우에는 반드시 /usr/src/linux에 소스를 설치해야합니다.

굳이 /usr/src밑으로 커널소스를 넣을 필요는 없습니다...

그리고... 위에 에러는... 음... 모지... :?:

gonEH의 이미지

컴파일 옵션이 어떻게 되시나요?
.config를 올려주세요..
그리고, http://kernelnewbies.org/scripts/reference_discarded.pl 스크립트를 받아서,
/usr/src/linux 에서 실행 해보세요.
# /usr/src/linux/reference-discarded.pl

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.