STLinux/Enigma2 2008. 12. 1. 12:18

enigma2 Building for SH4


STLinux(SH4)에 enigma2를 포팅하기 위해서는 STLinux의 Target System에 추가적인 라이브러리가 필요하다.

enigma2 빌드에 필요한 필수 라이브러리 등은 다음과 같다.

1. zlib-1.2.3 (이건 사실 이미 설치가 되어있다)
2. libxml2 2.6.30
3. fribidi 0.10.9
4. libsigc++ 1.2.7
5. libdvbsi++ 0.3.3
6. libxslt 1.1.16
7. libxmlccwrap 0.0.12
8. enigma2 ( dreambox의 공개 cvs 서버에서 받을수 있다)
9. Python 2.4(2.5도 지원)
10. swig

위의 라이브러리가 모두 설치되어야 하고..

mips기반의 dreambox에 enigma2는 open-embedded 프로젝트 기반으로 작성되어 있기에 STLinux에 맞게 일부 Makefile 및 Configure 파일의 수정이 불가피 하다.

또한 SH4 기반으로 크로스 컴파일되어야 하므로...다음과 같은 옵션이 필요하다.

필자는 STLinux의 Target Filesystem의 위치가 /opt/STM/STLinux-2.2/devkit/sh4/target_full 이므로 아래와 같이 설정하였다.

export KDIR=/root/linux-2.6.17.14_stm22_0041
export PREFIX=/opt/STM/STLinux-2.2/devkit/sh4/target_full/usr/local
export LD_LIBRARY_PATH=$PREFIX/lib
export PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig:/opt/STM/STLinux-2.2/devkit/sh4/target_full/usr/lib/pkgconfig:/opt/STM/STLinux-2.2/devkit/sh4/target_full/usr/local/lib/pkgconfig
export STRIP=sh4-linux-strip
export COMPILER=sh4-linux-gcc
export HOST=sh4-linux
export BUILD=i386-linux

또한 대부분의 오픈소스 라이브러리들은 다음과 pkg_config_path에서 지정되있는 폴더에서 .pc(패키지 설정)파일로 부터 필요한 라이브러리의 위치를 받아서 사용하게 되므로 Configure에 들어갈 PATH를 주의해서 입력해야한다.

수정이 필요한 Makefile 및 Configure 파일은 다음과 같다.
1. libxml2/example/Makefile
2. libxml2/libxml/Makefile
3. libxmlccwrap/xmlccwrap/Makefile
4. libxmlccwrap/testlib/Makefile
5. libxslt/Configure
6. enigma2/Configure
7. enigma2/main/Makefile
8. enigma2/lib/gdi/Makefile

수정해야 될 내용은 주로 컴파일러에 필요한 CPP_FLAGS 와 LIBS(링크에 필요), INCLUDES(헤더파일의 위치를 지정)들 이다..

이 모든것들이 완벽히 설정이 된다면 몇가지 튜닝이 필요한 옵션등이 없기에 에러가 날뿐 큰 문제 없이 Enigma2를 빌드할수 있다.