国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 1145|回復(fù): 0
打印 上一主題 下一主題

iMX6系列-iMX6Q 開發(fā)板 Python 移植

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-2-7 14:50:26 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: 飛凌嵌入式
本文基于飛凌OKMX6Q/DL開發(fā)板為基礎(chǔ)講解,主要使用平臺是imx6系列,linux3.0.35操作系統(tǒng),其他平臺也可以參考,不同平臺之間會存在差異,需自行修改適應(yīng)自己的使用

iMX6 Python移植注:所需工具包在  Python移植/工具包
      已經(jīng)生成的可移植Python在Python移植/output
過程一:Python編譯過程準(zhǔn)備工作
以下文件在下面的編譯中需要用到
Python-2.7.13.tgz
sqlite-autoconf-3200100.tar.gz
Python-2.7.13-xcompile.patch.tar.gz
ntp-4.2.8p10.tar
setuptools-0.6c11-py2.7.egg
openssl-OpenSSL_1_0_1b.zip
zlib-1.2.3.tar.g
準(zhǔn)備環(huán)境
cd /root
mkdir mx6q-python2.7/ && cd mx6q-python2.7

mkdir –p {python2_7_13_for_x86_64,python2_7_13_for_arm,INSTALL,sqlite3,misc,output/sources}
復(fù)制上文中準(zhǔn)備的軟件包到mx6q-python2.7,把zlib-1.2.3.tar.gz和openssl-OpenSSL_1_0_1b.zip移動到misc目錄下。或者直接復(fù)制提供的軟件包中mx6q-python2.7文件到/root目錄下。

確定交叉編譯工具鏈
確定當(dāng)前交叉編譯器鏈,如果交叉編譯鏈不一致, 替換下文中的編譯器。當(dāng)前的交叉編譯鏈為arm-none-linux-gnueabi-.可以通過下面命令確定當(dāng)前編譯鏈。
find / -name arm-*-gcc
如果交叉編譯鏈不一致,替換下文中的編譯器

編譯安裝
編譯安裝sqlite3
編譯安裝sqlite3, python需要sqlite3支持。
cd /root/mx6q-python2.7/
tar xvf sqlite-autoconf-3200100.tar.gz
cd sqlite-autoconf-3200100
./configure --host=arm-none-linux-gnueabi --prefix=$PWD/../sqlite3
make -j8 && make install
編譯openssl和zlib
編譯zlib
cd /root/mx6q-python2.7/misc/
tar xvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
mkdir arm_install
./configure --prefix=./arm_install/
sed -i 's/gcc/arm-none-linux-gnueabi-gcc/g' Makefile
sed -i 's/AR=ar/AR=arm-none-linux-gnueabi-ar/g' Makefile
make
make install
編譯openssl
cd /root/mx6q-python2.7/misc/
unzip openssl-OpenSSL_1_0_1b.zip
cd openssl-OpenSSL_1_0_1b
mkdir arm_install
./Configure --prefix=`pwd`/arm_install/ os/compiler:arm-none-linux-gnueabi-gcc
需要修改Makefile中的CC變量為CC= $(CROSS_COMPILE)gcc
make
make install
打包編譯好的安裝包,移植到開發(fā)板需要用到
cd arm_install
tar jcvf openssl-OpenSSL_1_0_1b.tar.bz2 *
cp openssl-OpenSSL_1_0_1b.tar.bz2 /root/mx6q-python2.7/output/sources
l 編譯python2.7
編譯python2.7 for x86
cd /root/mx6q-python2.7/
tar xvf Python-2.7.13.tgz
cd python2_7_13_for_x86_64/
sed -i 's/self.extensions.remove(ext)/print(ext.name)/g' ../Python-2.7.13/setup.py
../Python-2.7.13/configure --prefix=`pwd`
make -j8 && make install
編譯python2.7 for arm
打補(bǔ)丁
cd ..
tar xvf Python-2.7.13-xcompile.patch.tar.gz -C Python-2.7.13
cd Python-2.7.13/
patch -p1 < Python-2.7.13-xcompile.patch
修改模塊連接配置
vim Modules/Setup.dist,取消下列配置注釋
zlib zlibmodule.c -I$(prefix)/include -L$(prefix)/lib -lz
_ssl _ssl.c \
    -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
    -L$(SSL)/lib -lssl -lcrypto
編譯python2.7 for arm
配置
cd ../python2_7_13_for_arm/
拷貝bksh文件到/root/mx6q-pythin2.7/下
cp ../bksh/py2* .可直接運(yùn)行腳本py2config-for-arm.sh
或者輸入下面的指令。
../Python-2.7.13/configure --prefix=`pwd` \
    --host=arm-none-linux-gnueabi \
    --build=x86_64-linux-gnu \
    --enable-ipv6 \
    --enable-static \
    ac_cv_file__dev_ptmx="yes" \
    ac_cv_file__dev_PTC="no" \
    LDFLAGS="-L$PWD/../sqlite3/lib -L$PWD/lib" \
    CPPFLAGS="-I$PWD/../sqlite3/include -I$PWD/include -I$PWD/include/openssl"
在下一步make執(zhí)行之前,需要先安裝zlib和openssl,并將其各自的include和lib拷貝到python2_7_13_for_arm文件夾下.或者可直接運(yùn)行py2-cp-libAndssl-arm-toHere.sh腳本會自動把misc下的zlib和openssl庫的頭文件和庫拷貝到當(dāng)前目錄下。
編譯
cd /root/mx6q-python2.7/python2_7_13_for_arm/
運(yùn)行py2make-for-arm.sh或者運(yùn)行下面的命令。
make HOSTPYTHON=../python2_7_13_for_x86_64/python \  HOSTPGEN=../python2_7_13_for_x86_64/Parser/pgen \  BLDSHARED="arm-none-linux-gnueabi-gcc -shared" \  CROSS_COMPILE=arm-none-linux-gnueabi- \  CROSS_COMPILE_TARGET=yes \  HOSTARCH=arm-none-linux-gnueabi \  BUILDARCH=x86_64-linux-gnu \  SSL=`pwd`
安裝
運(yùn)行py2install.sh或者運(yùn)行下面的命令。
make install HOSTPYTHON=../python2_7_13_for_x86_64/python \
BLDSHARED="arm-none-linux-gnueabi-gcc -shared" \
CROSS_COMPILE=arm-none-linux-gnueabi- \
CROSS_COMPILE_TARGET=yes \
prefix=$PWD/../INSTALL
打包
cd ../INSTALL/
tar jcvf python2.7-for-arm.tar.bz2 *
cp python2.7-for-arm.tar.bz2 ../output/sources/
l ntpdate網(wǎng)絡(luò)時間同步工具
交叉編譯
cd /root/mx6q-python2.7
tar xvf ntp-4.2.8p10.tar.gz
cd ntp-4.2.8p10/
mkdir arm_install
./configure --prefix=$PWD/arm_install --host=arm-none-linux-gnueabi --enable-static --with-yielding-select=yes
make && make install
打包
如果不需要幫助文檔可把a(bǔ)rm_install目錄下的/share目錄刪掉,減少占用。
cd arm_install
rm share -RF [可選]
tar jcvf ntp-4.2.8.p10.tar.bz2 *
cp ntp-4.2.8.p10.tar.bz2 ../../output/
l output輸出目錄
復(fù)制setuptools腳本到輸出目錄
cd /root/mx6q-python2.7/
cp setuptools-0.6c11-py2.7.egg output/sources/
最后的目錄格式如下:
├── ntp-4.2.8.p10.tar.bz2
└── sources
    ├──openssl-OpenSSL_1_0_1b.tar.bz2
    ├── python2.7-for-arm.tar.bz2
    └── setuptools-0.6c11-py2.7.egg
到此,python編譯完整, 移植到開發(fā)板的步驟請參考"python2.7直接使用手冊".
過程二:Python在開發(fā)板配置將以上生成的output文件夾拷貝到iMX6Q開發(fā)板
1. 解壓縮包島開發(fā)版
tar  xvf  python2.7-arm.tar.bz2  -C  /
tar  xvf  openssl-OpenSSL_1_0_1b.tar.bz2  -C  /
cp  setuptools-0.6c11-py2.7.egg  /
cp ntp-4.2.8p10-arm-no-share.tar.gz  /
2. 修改配置
修改文件/lib/pkgconfig/python2.pc如下.
prefix=/
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
修改文件vi /bin/python2.7-config的第一行如下.
#!/bin/python2.7
在/etc/profile中添加一下配置, 修改成功后source /etc/profile
export PYTHONHOME=/
export PYTHONPATH=$PYTHONHOMEPYTHONHOME/lib/python2.7PYTHONHOME/libPYTHONHOME/lib/python2.7/site-packages
export PATH=$PATHPYTHONHOMEPYTHONPATH
3.  進(jìn)入到easy_install文件夾, 安裝easy_install.
輸入 /bin/bash setuptools-0.6c11-py2.7.egg 安裝easy_install.
修改文件vi /etc/profile,
添加alias easy_install='easy_install -i http://pypi.douban.com/simple'.
保存退出便于之后安裝管理, source /etc/profile使生效配置
4. 取消SSL全局驗(yàn)證并驗(yàn)證easy_install,修改文件vi /bin/easy_install增加如下配置.
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
5. 配置好網(wǎng)絡(luò)
參考其他配置應(yīng)用筆記配置網(wǎng)絡(luò)的方法。
6. 安裝ntp網(wǎng)絡(luò)對時, 進(jìn)入ntp文件夾.
tar xvf ntp-4.2.8p10-arm-no-share.tar.gz -C /
ntpdate time.buptnet.edu.cn
注:此處可能因?yàn)閷r網(wǎng)址問題會出現(xiàn)錯誤,針對報錯信息直接搜索即可解決。
7. 安裝pip
easy_install pip      安裝成功后, pip -V 查看當(dāng)前安裝版本.
8. pip安裝模塊測試
pip install requests
pip list 查看已安裝的模塊.
9. 導(dǎo)入模塊測試,輸入python2.7進(jìn)入python2.7 shell.輸入 import requests,無錯誤輸出。輸入exit() 退出python shell.



原文鏈接:https://www.forlinx.com/article_view_625.html

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品老女人精品视 | 99精品视频在线在线视频观看 | 一区精品麻豆经典 | 91真实强推绝对不是演的 | 日日爱网址 | 美女国内精品自产拍在线播放 | 国产欧美精品一区二区三区四区 | 欧美成人性色区 | 妈妈的朋友韩国在线播放 | 国产精品片| 伊人狼人在线 | 天天插天天插天天插 | 亚洲综合激情在线影院 | 麻豆日韩国产精品欧美在线 | 青青青视频在国线观看伊人 | 91精品最新国内在线播放 | h在线免费 | 国产一区高清视频 | 99午夜 | 日韩精品久久久久影院 | 久久精品国产国语对白 | 一本大道无香蕉综合在线 | 麻豆一精品传媒媒短视频下载 | av播播| 亚洲第一毛片 | 中文字幕在线观看国产 | 肥臀在线| 午夜在线观看cao | 国内精品一区二区在线观看 | 日韩欧美不卡一区二区三区 | 欧美日韩一二三四区 | 天堂网www天堂在线资源链接 | 日韩欧美成人免费中文字幕 | 欧美一级欧美一级在线播放 | 精品动漫在线观看视频一区 | 国产成人一区二区三区免费观看 | 免费日韩在线视频 | 成人午夜视频在线播放 | 99er精品 | 日韩18在线观看 | 亚洲精品二区 |