도와주세요!!
글 수 15,339
2008.11.25 14:03:07 (*.34.186.44)
26939
파란 R2(커널2.4.18) 에서 타겟용 리눅스작업을 하고 있습니다.
타겟커널은 2.4.21 입니다.
usb 인식 안되는 문제 잡기 위해서 먼저 pci를 체크해보아야 하는데
lspci 의 경우에는 busybox에서 전혀 지원이 안되는것 같군요.
busybox 1.13.0 버젼에서도 lspci는 없네요.
대신 hexdump 는 있더군요.
컴파일 하려고 Makefile 에서
CROSS COMPILE ?= arm-linux
를 설정하고 컴파일 했습니다만...
에러 메세지를 내보내며 정지해 버립니다.
//---------------------------------------------------------
# make
HOSTCC applets/applet_tables
In file included from applets/../include/busybox.h:10,
from applets/applet_tables.c:16:
applets/../include/libbb.h:1331: field `masks' has incomplete type
make[1]: *** [applets/applet_tables] 오류 1
make: *** [applets] 오류 2
//---------------------------------------------------------
pciutils 를 소스포지에서 구하려고 했더니 다운로드 할 수가 없군요;
갖고 계신분~ 나눠주세요오~
타겟에 pciutils를 설치하고 싶어요~
;;
// 내용추가
pciutils-3.0.3 을 외국사이트 (기억이 잘;;) 에서 구하게 되었습니다~! (우연히..핫핫)
그러나...
역시 컴파일에서 막히는군요-;; (ㅠㅜ)
Makefile 에 있는 내용중 아래 부분을 수정후 컴파일 했습니다.
CROSS_COMPILE=arm-linux-
PREFIX=/usr/local/arm-linux/
//---------------------------------------------------------
# make
cd lib && ./configure
Configuring libpci for your system... i386--linux 2.4.18-4 i386 linux
Looking for access methods... sysfs proc i386-ports dump
Checking for zlib support... yes (auto-detected)
Checking for DNS support... yes (auto-detected)
Checking whether to build a shared library... no (set manually)
make -C lib all
make[1]: 들어감 `/windir_paran/pciutils/pciutils-3.0.3/lib' 디렉토리
arm-linux-gcc -O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -c -o init.o init.c
In file included from internal.h:15,
from init.c:14:
pci.h:62: argument format specified for non-function `error'
pci.h:63: argument format specified for non-function `warning'
pci.h:64: argument format specified for non-function `debug'
make[1]: *** [init.o] 오류 1
make[1]: ³ª°¨ `/windir_paran/pciutils/pciutils-3.0.3/lib' µð·ºÅ丮
make: *** [lib/libpci.a] 오류 2
//---------------------------------------------------------
busybox 가 원할히 컴파일하는 다른 방법이 있는지요?
보통 임베디드에서 많이 사용하기에 크로스컴파일이 원활하게 진행 될 줄 알았는데..
크로스 컴파일 설정은makefile을 수정하지 마시고 menuconfig에있는
Busybox Settings ->
Build Options ->
의 맨 아래에 보면 크로트 컴파일 위치 지정하는 곳이 있습니다.
그곳에 크로스 컴파일 위치를 정확히 입력해 주시면 됩니다.
저의 경우 /usr/local/arm/4.3.1-eabi/usr/lib/arm-linux-
이렇게 됩니다.
크로스 컴파일 위치가 버전 마다 약간씩 다르니 님이 설치한 크로스 컴파일 위치를 지정하시면 될 겁니다.
그리고 BusyBox 1.13.0 (unstable) 이라고 나오던데 특별한 이유가 아니면 1.12버전을 사용하는게 어떨까요?
prefix는 별도로 지정하지 않으면 _install에 디폴트로 지정되어있습니다.