타겟보드에 DirectFB 올리려하는데 configure를 어떻게 잡아주어야 하나요... (Sigma Design cross compile)
DirectFB를 cross compile하여 타겟보드에 올리려고 하는데 configure를 어떻게 잡아주어야 하나요?
www.directfb.org 뿐 아니라 여기저기 돌아다니며 단서가 될만한 문서나 게시물을 찾아서 시도해보고 있지만 계속 에러가 납니다.
현재 타겟보드는 Sigma Design의 SMP8634 칩을쓰고 있는데 DirectFB cross compile 경험이 있으신 분들의 도움을 부탁합니다.
알아보기 쉽게 지금 개발서버에 설치한 디렉토리 그대로의 정보를 올립니다.
배포버전 : CentOS release 4.4 (Final)
Kernel Version : 2.6.9-42.ELsmp
DirectFBGL : 0.9.25
SMP8634_TOOLCHAIN : 2.7.147.0
/home/jskim/070126 :: 전체 개발소스 디렉토리 (보드 마운트 디렉토리)
/home/jskim/070126/mrua-2.7.147.0-facsprod/ :: Sigma MRUA 디렉토리
/home/jskim/070126/apps/DFB/DirectFBGL-0.9.25 :: DirecFB 설치 디렉토리
/opt/SMP8634_TOOLCHAIN_2.7.147.0/ :: Sigma Toolchain 디렉토리 (하위 디렉토리 ./build_mipsel/staging_dir/...)
- Frame Buffer는 아래와 같이 Sigma에서 제공하는 모듈을 올려 타겟보드 상에서 test application 확인된 상태입니다. /mnt/mrua-2.7.147.0-facsprod/MRUA_src/rua/emhwlib_kernel/kernel_src# insmod em8xxxfb.ko videomemory=0x178d3c00 videomemorysize=1228800 palette=0x79000 mode=640:480:32
- Image Library도 Sigma에서 제공하는 것을 링크할 예정이며 컴파일 성공하여 링크 준비된 상황입니다.
/home/jskim/070126/mrua-2.7.147.0-facsprod/MRUA_src/rmlibjpeg/src/libjpeg/libjpeg.a /home/jskim/070126/mrua-2.7.147.0-facsprod/MRUA_src/rmlibpng/src/libpng/libpng.a
- 이곳저곳에서 찾은 문서와 게시물을 바탕으로 짜집기하여 직접 Configure을 시도해 본 것들을 나열하면 아래와 같습니다.
(1)./configure --prefix=/usr/local --with-gfxdrivers=cyber5k --enable-fbdev=yes --enable-sdl=no --enable-debug --disable-joystick --disable-cdrom --enable-shared --build=i686-pc-linux-gnu --host=mips-linux mipsel-linux-gcc (2) export CC=mips-linux-gcc export AR=mips-linux-ar export LD=mips-linux-ld export RANLIB=mips-linux-ranlib ./configure --build=i686-pc-linux-gnu --host=mips-linux --target=mips-linux --prefix=/home/jskim/070126/apps/DFB --disable-cdrom --disable-joystick ./configure --build=i686-pc-linux-gnu --host=mips-linux --target=mips-linux --prefix=/opt/SMP8634_TOOLCHAIN_2.7.147.0/build_mipsel/staging_dir/mipsel-linux --disable-cdrom --disable-joystick ./configure --prefix=/opt/SMP8634_TOOLCHAIN_2.7.147.0/build_mipsel/staging_dir/mipsel-linux --disable-cdrom --disable-joystick (3) ./configure --prefix=/home/jskim/070126/apps/DFB --build=i686-pc-linux-gnu --host=mips-linux AR=mips-linux-ar AS=mips-linux-as CC=mips-linux-cc NM=mips-linux-nm LD=mips-linux-ld RANLIB=mips-linux-ranlib STRIP=mips-linux-strip --enable-sdl=no --enable-debug --disable-joystick --disable-cdrom --enable-shared
(2)의 경우 아래와 같은 에러 메세지가 나오며,
..... checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for gcc... /opt/SMP8634_TOOLCHAIN_2.7.147.0/build_mipsel/staging_dir/bin/mipsel-linux-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... configure: error: cannot run C compiled programs. If you meant to cross compile, use `--host'. See `config.log' for more details. #
(1),(3)의 경우 다음과 같은 에러 메세지가 표시됩니다.
..... checking whether make sets $(MAKE)... (cached) yes checking for ANSI C header files... (cached) yes checking how to run the C preprocessor... /opt/SMP8634_TOOLCHAIN_2.7.147.0/build_mipsel/staging_dir/bin/mipsel-linux-cpp checking for pkg-config... /usr/bin/pkg-config checking for DirectFB... configure: error: *** DirectFB 0.9.25 or newer is required. #
어디까지 진행하셨나요?
현재 같은 작업을 하고 있습니다.
시간이 꽤 지나셨는데 조금 늦게 답변 올리는게 아닌가도싶고, 제가 아직 Porting 작업을 완료하지도 못했지만,
님이 글을 올리신것에 대한 오류는 알것 같아서 여기 글을 남깁니다.
./configure 를 하실때 internet 에서 찻은 것들을 그대로 올리신것 같은데,
그렇게 하시면 안되고, ./configure --help 를 하시면 도움말이 나옵니다.
그것을 참고하시어 하나하나 수정해야 할것 같습니다.
정확하지는 않지만 참고로 제가 하는 ./configure option 들을 알려 드립니다.
./configure --host=mips-linux --target=mips-linux AR=mipsel-linux-ar AS=mipsel-linux-as CC=mipsel-linux-cc NM=mipsel-linux-nm LD=mipsel-linux-ld RANLIB=mipsel-linux-ranlib STRIP=mipsel-linux-strip CPP=mipsel-linux-cpp C++=mipsel-linux-c++ --with-gfxdrivers=none --disable-cdrom --disable-joystick --disable-jpeg --disable-png --disable-freetype
--enable-fbdev=yes --enable-sdl=no
이걸로하면 make 하다가 PAGE_SIZE가 undefined 나는데 우선 그것만 적당한 값을로 선언을 해주면
make 하고 make install 은 됩니다. PAGE_SIZE는 mura package 안에 소스를 찻아보면 어딘가 값이 있을 것입니다.
저는 (1<<12) 로 했습니다.
그다음에는 LiTE를 사용해서 test 프로그램을 실행하는데 에라가 나네요,,,
위의 ./configure 가 맞다고는 할수 없지만 참고가 되길 바랍니다.
저도 지금 몇개 option 들을 넣었다 뺐다 하면서 test 하고 있습니다.
이상.
댓글 달기