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 에 파일들이 생성됩니다.

 

생성된 파일을 임베디드 보드에 다운로드를 하면 됩니다.