Python de compilação cruzada

2

Estou usando uma placa de avaliação com um ARM926EJ-S executando o Openembedded e quero instalar o python nele.

Eu compilei com sucesso o python 2.7.13 no meu Fedora 25 com o linaro toolchain (releases.linaro.org/components/toolchain/binaries/6.2-2016.11/) assim:

CONFIG_SITE=config.site ./configure --build=x86_64-linux-gnu --host=arm-linux-gnueabihf --disable-ipv6 --enable-unicode=ucs4

Eu tive que fazer um config.site porque durante a compilação ele me pediu para precisar:

ac_cv_file__dev_ptmx=no/yes
ac_cv_file__dev_ptc=no/yes

E eu coloquei "não" para os dois como esse cara: datko.net/2013/05/10/cross-compiling-python-3-3-1-for-beaglebone-arm-angstrom/

Então eu testei para adicionar:

--host=arm-elf-linux

Porque funcionou para outro lib (pjsip), mas infelizmente não deu certo então eu encontrei esta solução:

--host=arm-unknown-linux-gnueabihf

Aqui: github.com/jedisct1/libsodium/issues/274

E foi por um erro durante a configuração que me pediu para fazer isso:

--desable-ipv6

Então a configuração correu bem, então o make. Para fazer o make install, porque tive que instalá-lo na minha placa, fiz:

make install DESTDIR=root@IP_ADRESS

Isso funcionou também, o python está instalado em root@IP_ADRESS/usr/local/lib/python2.7.

Mas não consigo encontrá-lo no meu quadro nem inicio o shell do python.

Então eu tento isso:

export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"

Como respondido aqui: stackoverflow.com/questions/4743233/is-usr-local-lib-searched-for-shared-libraries

Isso não muda nada, e eu decido que / usr / local / lib não existe ... E eu descobri que meu lib pjsip não está instalado também ...

Você sabe onde minhas libs foram? E como eu posso usá-los?

Obrigado!

EDITAR:

Encontrou a solução, na verdade, quando você faz:

make install DESTDIR=root@IP_ADRESS

Ele não irá instalá-lo no root @ IP_ADRESS, mas está criando uma pasta chamada "root @ IP_ADRESS" ...

Então eu tar.bz2 todos os arquivos contidos nesta pasta, envie-os com scp em minha placa e copie todas as pastas e arquivos no / usr / do meu quadro.

Mas o python não está funcionando quando tento ativá-lo:

~# python
-sh: /usr/bin/python: cannot execute binary file

É porque durante a parte de configuração, o --host não é o bom?

    
por Tagadac 06.02.2017 / 18:06

1 resposta

2

Eu encontrei a solução. A placa que eu uso é a TMDSLCDK138 integrando um OMAPL138 (ARM926EJ-S + DSP).

Para aqueles que tentam compilar o Pyhton 2.7 para esta placa rodando o Arago SDK, aqui está o caminho! Eu estou trabalhando no Ubuntu 16.04.

Primeiro instale o conjunto de ferramentas Arago:

NÃO ESTE: link (porque é DEPRECADO !!)

Mas o do mcsdk_1_01_00_02_setuplinux.bin!

wget http://software-dl.ti.com/sdoemb/sdoemb_public_sw/mcsdk/latest1/exports/mcsdk_1_01_00_02_setuplinux.bin
chmod +x mcsdk_1_01_00_02_setuplinux.bin
sudo ./mcsdk_1_01_00_02_setuplinux.bin

Eu instalo em / opt / ti /

Então:

cd /opt/ti/mcsdk_1_01_00_02
chmod +x linux-devkit.sh
sudo ./linux-devkit.sh

Ele vai perguntar onde você deseja instalá-lo, eu mantive /usr/local/arago.2013-05 /

Agora:

cd /usr/local/arago-2013.05/
. ./environment-setup

Normalmente, seu shell vai "transformar" e suas linhas de comando estão funcionando com:

[linux-devkit]:/usr/local/arago-2013.05/>

Ok, aqui você terminou de instalar a GOOD toolchain da Arago.

Agora, compilação e instalação cruzada do Python:

Eu fiz todos os outros comandos neste shell linux-devkit.

wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
tar -Jxvf Python-2.7.13.tar.xz
cd Python-2.7.13/

Agora crie um arquivo chamado config.site (porque se você não receber um erro pedindo para fazer isso):

touch config.site
gedit config.site

Adicione essas duas linhas neste arquivo:

ac_cv_file__dev_ptmx=no
ac_cv_file__dev_ptc=no

Agora você pode fazer o ./configure da seguinte forma:

CONFIG_SITE=config.site ./configure --host=arm-arago-linux --prefix=/home/YOUR_USER/MY_BOARD_python --build=x86_64-linux-gnu --disable-ipv6
make
make install

Agora você só precisa compactar sua pasta MY_BOARD_python, scp-lo para sua placa com:

tar -jcvf MY_BOARD_python.tar.bz2 MY_BOARD_python/
scp MY_BOARD_python.tar.bz2 root@IP_ADRESS:~/

Agora no seu quadro:

tar -jxvf MY_BOARD_python.tar.bz2
cp -R MY_BOARD_python/* /usr/

E agora, se você digitar Python:

root@omapl138-lcdk:~# python
Python 2.7.13 (default, Feb 23 2017, 16:37:33) 
[GCC 4.5.3 20110311 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> HURAYY!!

Espero que isso ajude!

    
por 23.02.2017 / 17:59