강좌 & 팁
Python을 ARM 임베디드 리눅스에 포팅하는 방법을 소개하겠습니다.
Python을 포팅하면 용량은 70Mbyte 이상의 용량이 필요합니다.
1. Python 다운로드 하기
공식 사이트 : http://www.python.org/
다운로드 : http://www.python.org/download/releases/2.6.6/
Bzipped source tar ball (2.6.6) (sig)
파일명 : Python-2.6.6.tar.bz2
2. 패치 파일 다운로드하기
http://randomsplat.com/id5-cross-compiling-python-for-embedded-linux.html
Python-2.6.6-xcompile.patch
3. 컴파일 하기
위의 패치 파일 다운로드를 위해 접속한 사이트에 컴파일 방법이 소개되어 있다.
하지만 다시 한번 정리를 하겠습니다.
1) 작업 환경
위의 두 파일의 다운로드는 사용자가 임의의로 설정하시면 됩니다. 제가 작업한 환경은 다음과 같습니다.
작업환경 : 우분투 10.10
크로스 컴파일러 : gcc4.3.2 ( EZ-S3c6410 용으로 배포된 크로스 컴파일러 )
디렉토리 : /project/python
/project/python/Python-2.6.6.tar.bz2
/project/python/Python-2.6.6-xcompile.patch
2) 압축풀기
# tar -jxvf Python-2.6.6.tar.bz2
# cd Python-2.6.6
# ./configure
# make python Parser/pgen
# mv python hostpython
# mv Parser/pgen Parser/hostpgen
# make distclean
3) 패치 적용하기
# patch -p1 < ../Python-2.6.6-xcompile.patch
4) 컴파일 하기
# CC=arm-generic-gnueabi-gcc CXX=arm-generic-gnueabi-g++ AR=arm-generic-gnueabi-ar RANLIB=arm-generic-gnueabi-ranlib ./configure --host=arm-generic-gnueabi --build=i686-pc-linux-gnu --prefix=/usr/lib/python2.6/
# make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen BLDSHARED="arm-generic-gnueabi-gcc -shared" CROSS_COMPILE=arm-generic-gnueabi- CROSS_COMPILE_TARGET=yes
# make install HOSTPYTHON=./hostpython BLDSHARED="arm-generic-gnueabi-gcc -shared" CROSS_COMPILE=arm-generic-gnueabi- CROSS_COMPILE_TARGET=yes prefix=/project/python/Python-2.6.6/usr/lib/python2.6
정상적으로 컴파일되고, 인스톨이 되었다면 /project/python/Python-2.6.6/usr/lib/python2.6 에 파일들이 생성됩니다.
생성된 파일을 임베디드 보드에 다운로드를 하면 됩니다.