리눅스에서 컴파일 잘 된것을 arm용으로 크로스 컴파일 하려는데 질문 드립니다
글쓴이: lee3834 / 작성시간: 목, 2009/11/19 - 2:41오전
카메라 드라이버를 리눅스에서 컴파일 잘 되었고 실행도 잘 되었습니다
그런데 이 카메라 드라이버의 Make관련 파일인 Makefile.standalone에 보면
KVER=$(shell uname -r) KSRC=/lib/modules/$(KVER)/build all: driver driver: $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules
이렇게 되어 있습니다
이런식으로 되어 있는 것을 arm용으로 크로스 컴파일 하려면 어떻게 작업하는것이 편한가요?
make -f Makefile.standalone ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
이렇게도 해보았고
KSRC폴더를 arm용으로 빌드된 커널폴더로도 잡아보았습니다
그런데 둘다 아직 성공하지 못하고 있습니다
Forums:
make 파일이 딸랑 저것만 있나요?
분위기 보면 더 있을거 같은데요?
행복은 희생없이는 얻을 수 없는 것인가?
시대는 불행없이는 넘을 수 없는 것인가?
Makefile이 있는데
그것은 오브젝트 파일 만드는 내용밖에 없습니다
실제로 필요한 변수명 같은것은 모두 커널의 Makefile을 빌려다 쓰더라구요
카메라 드라이버의 Makefile은
Makefile.standalone 파일은
커널 2.6 대로
커널 2.6 대로 넘어오면서 모듈의 Makefile 파일은 형식이 대폭 간소화되면서 모든 정보를 커널 소스 로부터 받아 오도록 변경되었습니다.
그래서 2.4 커널대에서는 모듈 컴파일을 할 때 커널 헤더만 있으면 되었지만 2.6 에서는 설정까지 모두 다 된 커널 소스가 있어야 모듈에서 컴파일이 가능하게 되었습니다.
다시 정리하면, 컴파일러와 같은 정보는 모두 커널 소스에 있는 Makefile 에 정의되어 있으며 모듈의 Makefile 은 커널 소스에서 이 정보를 가져다가 컴파일에 사용하고 있습니다.
arm 용 커널의 설정을 모두 잡고 다시 모듈을 컴파일하면 정상적으로 컴파일 될 겁니다.
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
감사합니다
다시 잡아봐야겠네요
Makefile 이상없는 것
Makefile 이상없는 것 같고요,
KSRC를 타겟용 (최소한 config까지는 진행된) 커널 소스가 있는 디렉토리로 지정하시는게 맞고요.
OTL
댓글 달기