久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ARM40之Python3.6.4移植

 goodwangLib 2020-01-29

準備

默認以下所列舉的軟件都已安裝完畢,主機和目標機可以通訊,。

  • 主機平臺:Ubuntu 16.04 LTS(x64)
  • 目標平臺:ARM40-A5D3
  • 虛擬機:VMware? Workstation 12 Pro
  • Python版本:Python3.6.4
  • 編譯工具鏈:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi
  • 終端工具:putty,secureCRT

部署zlib

downzlib.png

  • 預(yù)編譯zlib

為什么要先編譯zlib?因為zlib模塊為python壓縮方法提供支持,。
如果不預(yù)先編譯zlib,,編譯python的時候就會報“zlib 模塊找不到”的錯誤。
編譯Ubuntu(PC版),,ARM版兩個版本的zlib,,為下面的交叉編譯Python-3.6.4做準備。
注意:zlib的configure不支持用CC變量來指定交叉工具鏈,。

$ cd ~$ tar xzvf zlib-1.2.11.tar.gz$ ls$ cd zlib-1.2.11/$ ls
  • 1
  • 2
  • 3
  • 4
  • 5

lszlib.png

編譯Ubuntu(PC版)zlib:

$ ./configure$ make$ sudo make install$ exit
  • 1
  • 2
  • 3
  • 4

makezlib.png

編譯ARM版zlib:

$ cd ~/zlib-1.2.11/$ sudo mkdir /opt/zlib$ export CC=arm-linux-gnueabi-gcc$ ./configure --prefix=/opt/zlib$ make$ sudo make install$ exit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

arm-zlib.png

部署Ubuntu Python3.6.4

downpython.png

  • 解壓Python3.6.4源代碼

將下載的Python3.6.4源代碼復(fù)制到虛擬機Ubuntu中,,解壓到指定目錄。默認是當(dāng)前用戶目錄下,。

$ cd ~$ ls$ xz -d Python-3.6.4.tar.xz$ ls$ tar xvf Python-3.6.4.tar$ cd Python-3.6.4/$ ls
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

xdpython.png
inpython.png

  • 更新Ubuntu Python3版本

Ubuntu上python3的版本大于3.6.4,,請?zhí)^此步驟。

$ python3 -V
  • 1

1)Ubuntu上的python3的版本不能低于3.6.4,,否則在交叉編譯Python-3.6.4的時候就會失?。∧JUbuntu python為最新版本,,如果不是,,需要手動編譯安裝Python-3.6.4。
2)編譯Python-3.6.4前必須修改Python-3.6.4/Modules/Setup.dist文件,,
否則編譯過程中有可能會報“zlib 模塊找不到”的錯誤,。

$ python3 -V$ cd ~/Python-3.6.4/$ ls$ vim Modules/Setup.dist$ ./configure$ make$ sudo make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

zlib-insert.png

編譯ARM Python3.6.4

  • 創(chuàng)建Ubuntu版本的pgen

1)在交叉編譯Python時,需要用到pgen解釋器,。
如果編譯的是ARM架構(gòu)的解釋器,,是不能在PC上運行的,會導(dǎo)致編譯失敗,。
所以要預(yù)先編譯出一個能Ubuntu上運行的pgen,。

$ cd ~/Python-3.6.4/$ make distclean $ ls$ ./configure$ make Parser/pgen
  • 1
  • 2
  • 3
  • 4
  • 5

makegen.png

  • 交叉編譯python3.6.4

1)在Python-3.6.4目錄下,創(chuàng)建build-arm40的目錄,;
交叉編譯python,,將在這個目錄下進行。
2)在/opt目錄下創(chuàng)建python3目錄,;
將交叉編譯好的zlib庫,,復(fù)制到python3目錄下,注意這一步很關(guān)鍵,。
注意…/configure,,“/”的前面是有兩個點的,。

$ cd ~/Python-3.6.4/$ mkdir build-arm40$ cd build-arm40$ sudo mkdir /opt/python3$ sudo cp -rfp /opt/zlib/* /opt/python3/$ ls /opt/python3/$ ../configure CC=arm-linux-gnueabi-gcc \              CXX=arm-linux-gnueabi-g++ \              AR=arm-linux-gnueabi-ar \              RANLIB=arm-linux-gnueabi-ranlib \              --host=arm-linux-gnueabi \              --build=x86_64-linux-gnu \              --target=arm-linux-gnueabi \              --disable-ipv6 \              --prefix=/opt/python3 \              --with-ensurepip=yes \              --enable-optimizations \              ac_cv_file__dev_ptmx=yes \              ac_cv_file__dev_ptc=yes            
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

configure2.png

不要急著make,下面的步驟很關(guān)鍵,。
1)將剛才創(chuàng)建好的Ubuntu版本的pgen,,復(fù)制到build-arm40的Parser目錄下。
2)交叉編譯Python-3.6.4前必須修改Modules/Setup文件,,否則編譯過程中有可能會報“zlib 模塊找不到”的錯誤,。
3)touch –t 12312359 ./Parser/pgen ; 將pgen文件的日期改為今年的最后一分鐘生成的。為什么需要這一步,?因為arm版python在make時,,會生成它的pgen,就會把剛才復(fù)制過來的pgen給替換掉,,改成未來的時間,,就會忽略跳過,。引用1

$ cd build-arm40$ ls$ cp ../Parser/pgen ./Parser/$ ll ./Parser/$ touch -t 12312359 ./Parser/pgen$ ll ./Parser/$ vim Modules/Setup
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

touch-gen2.png
zlib-insert.png

4)切換到root賬戶進行make,以防由于環(huán)境變量不一致的導(dǎo)致編譯錯誤,。
5)編輯root環(huán)境下的.bashrc文件,并使交叉編譯器生效,。

在.bashrc文件末尾添加
export PATH=/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin:$PATH

$ su -root# cd ~root# vim .bashrcroot# source .bashrcroot# echo $PATHroot# cd /home/ubt1604/Python-3.6.4/build-arm40/root# makeroot# make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

root-gcc.png
root-bashrc2.png

關(guān)于報錯:主要是zlib缺失,,gcc交叉編譯工具鏈路徑或者環(huán)境變量的問題。
編譯python3.6.4結(jié)束了,,下面將它移植ARM40上,。

移植ARM Python3.6.4

  • ARM40 Python3文件部署

1)將Ubuntu /opt目錄下的python3目錄進行打包;
2)通過NFS將它解壓到ARM40的/opt目錄下。

$ cd /opt/$ sudo tar cvf python3.tar python3/$ ls$ sudo mv python3.tar /home/nfsroot/$ ls /home/nfsroot/
  • 1
  • 2
  • 3
  • 4
  • 5

py3.tar.png

登錄到ARM40,,使用NFS連接到Ubuntu nfs共享目錄/home/nfsroot
默認ARM40 IP地址:192.168.6.5,;Ubuntu默認IP地址:192.168.6.10;

root@ARM40:# cd /homeroot@ARM40:# mkdir nfsrootroot@ARM40:# lsroot@ARM40:# lsroot@ARM40:# mount -t nfs -o nolock 192.168.6.10:/home/nfsroot /home/nfsrootroot@ARM40:# cd nfsroot/root@ARM40:# lsroot@ARM40:# tar xvf python3.tar -C /opt/root@ARM40:# ls /opt/root@ARM40:# cd /opt/python3/bin/root@ARM40:# ./python3.6 -V>>Python 3.6.4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

arm_python.tar.png
arm_python.zlib.png

至此,,Python3.6.4移植結(jié)束,。

參考引用

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多