리눅스에서 컴파일 잘 된것을 arm용으로 크로스 컴파일 하려는데 질문 드립니다

lee3834의 이미지

카메라 드라이버를 리눅스에서 컴파일 잘 되었고 실행도 잘 되었습니다

그런데 이 카메라 드라이버의 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용으로 빌드된 커널폴더로도 잡아보았습니다

그런데 둘다 아직 성공하지 못하고 있습니다

cococo의 이미지

분위기 보면 더 있을거 같은데요?

행복은 희생없이는 얻을 수 없는 것인가?
시대는 불행없이는 넘을 수 없는 것인가?

lee3834의 이미지

그것은 오브젝트 파일 만드는 내용밖에 없습니다

실제로 필요한 변수명 같은것은 모두 커널의 Makefile을 빌려다 쓰더라구요

카메라 드라이버의 Makefile은

stk11xx-objs := stk11xx-usb.o stk11xx-v4l.o stk11xx-sysfs.o stk11xx-dev.o stk11xx-buf.o stk11xx-bayer.o
 
stk11xx-objs += stk11xx-dev-a311.o
stk11xx-objs += stk11xx-dev-a821.o
stk11xx-objs += stk11xx-dev-6a31.o
stk11xx-objs += stk11xx-dev-6a33.o
stk11xx-objs += stk11xx-dev-6a51.o
stk11xx-objs += stk11xx-dev-6a54.o
 
obj-$(CONFIG_STK11XX) += stk11xx.o

Makefile.standalone 파일은

#KVER=2.6.26.3
KVER=$(shell uname -r)
KSRC=/lib/modules/$(KVER)/build
 
 
all: driver
 
doc:
	@echo "Generating document with Doxygen..."
	@doxygen doxygen.cfg
 
driver:
	$(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules
	@ctags -R
 
clean:
	$(MAKE) -C $(KSRC) SUBDIRS=$(PWD) clean
	@rm -f Module.symvers
 
cleandoc:
	@echo "Removing documentation generated by Doxygen..."
	@rm -Rf ../doxygen
poplinux의 이미지

커널 2.6 대로 넘어오면서 모듈의 Makefile 파일은 형식이 대폭 간소화되면서 모든 정보를 커널 소스 로부터 받아 오도록 변경되었습니다.

그래서 2.4 커널대에서는 모듈 컴파일을 할 때 커널 헤더만 있으면 되었지만 2.6 에서는 설정까지 모두 다 된 커널 소스가 있어야 모듈에서 컴파일이 가능하게 되었습니다.

다시 정리하면, 컴파일러와 같은 정보는 모두 커널 소스에 있는 Makefile 에 정의되어 있으며 모듈의 Makefile 은 커널 소스에서 이 정보를 가져다가 컴파일에 사용하고 있습니다.

arm 용 커널의 설정을 모두 잡고 다시 모듈을 컴파일하면 정상적으로 컴파일 될 겁니다.

========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux

임베디드 리눅스 관련 프리렌서 지향

lee3834의 이미지

다시 잡아봐야겠네요

bushi의 이미지

Makefile 이상없는 것 같고요,
KSRC를 타겟용 (최소한 config까지는 진행된) 커널 소스가 있는 디렉토리로 지정하시는게 맞고요.

obj-m += stk11xx.o
이 정도로 바꿔보세요.

OTL

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 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>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 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>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 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>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.