交叉编译Python-2.7.13到ARM(aarch64)平台

发布者:玉立风华最新更新时间:2020-02-16 来源: eefocus关键字:交叉编译  Python-2  7  ARM  aarch64 手机看文章 扫描二维码
随时随地手机看文章

方法跟交叉编译Python-2.7.13到ARM(aarch32)平台基本一样, 不同的地方只是把工具链换成编译aarch64的工具链,这里可以参考用qemu搭建aarch64学习环境.


创建目录:


mkdir python2_7_13_for_aarch64

下面是配置、编译和安装的脚本:


1、配置: mk1_conf.sh


 1 #!/bin/bash

 2 

 3 export PATH=/home/pengdonglin/src/qemu/aarch64/gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux/bin:$PATH

 4 

 5 ../Python-2.7.13/configure --prefix=`pwd`

 6     --host=aarch64-linux-gnu

 7     --build=x86_64-linux-gnu

 8     --enable-ipv6

 9     --enable-shared

10     ac_cv_file__dev_ptmx="yes"

11     ac_cv_file__dev_ptc="no"


2、编译: mk2_make.sh


 1 #!/bin/bash

 2 

 3 export PATH=/home/pengdonglin/src/qemu/aarch64/gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux/bin:$PATH

 4 

 5 make HOSTPYTHON=../python2_7_13_for_x86_64/python

 6     HOSTPGEN=../python2_7_13_for_x86_64/Parser/pgen

 7     BLDSHARED="aarch64-linux-gnu-gcc -shared"

 8     CROSS_COMPILE=aarch64-linux-gnu-

 9     CROSS_COMPILE_TARGET=yes

10     HOSTARCH=aarch64-linux-gnu

11     BUILDARCH=x86_64-linux-gnu

12     -j4


3、安装: mk3_install.sh


1 #!/bin/bash

3 export PATH=/home/pengdonglin/src/qemu/aarch64/gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux/bin:$PATH

5 make install HOSTPYTHON=../python2_7_13_for_x86_64/python

6     BLDSHARED="aarch64-linux-gnu-gcc -shared"

7     CROSS_COMPILE=arm-none-linux-gnueabi-

8     CROSS_COMPILE_TARGET=yes

9     prefix=`pwd`



此外别忘了修改制作ramdisk的脚本以及修改内核配置。


运行Qemu:


 1 sudo qemu-system-aarch64

 2     -M  virt

 3     -cpu cortex-a53

 4     -smp 2

 5     -m 4096M

 6     -kernel ./linux-4.10/out_aarch64/arch/arm64/boot/Image

 7     -nographic

 8     -append "root=/dev/ram0 rw rootfstype=ext4 console=ttyAMA0 init=/linuxrc ignore_loglevel"

 9     -initrd ./rootfs/ramdisk.img

10     -net nic,vlan=0 -net tap,vlan=0,ifname=tap0

11     -fsdev local,security_model=passthrough,id=fsdev0,path=/nfsroot

12     -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hostshare


启动log:


  1 $./run_all.sh 

  2 sudo tunctl -u root -t tap0

  3 TUNSETIFF: Device or resource busy

  4 sudo ifconfig tap0 0.0.0.0 promisc up

  5 sudo brctl addif br0 tap0

  6 brctl show

  7 bridge name    bridge id        STP enabled    interfaces

  8 br0        8000.36de5b2e5a93    no        eth0

  9                             tap0

 10 docker0        8000.024280392ab1    no        

 11 [    0.000000] Booting Linux on physical CPU 0x0

 12 [    0.000000] Linux version 4.10.0+ (pengdonglin@pengdonglin-HP) (gcc version 4.9.1 20140529 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.07 - Linaro GCC 4.9-2014.06) ) #6 SMP PREEMPT Mon Mar 20 13:59:55 CST 2017

 13 [    0.000000] Boot CPU: AArch64 Processor [410fd034]

 14 [    0.000000] debug: ignoring loglevel setting.

 15 [    0.000000] efi: Getting EFI parameters from FDT:

 16 [    0.000000] efi: UEFI not found.

 17 [    0.000000] cma: Reserved 16 MiB at 0x00000000ff000000

 18 [    0.000000] NUMA: No NUMA configuration found

 19 [    0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x000000013fffffff]

 20 [    0.000000] NUMA: Adding memblock [0x40000000 - 0x13fffffff] on node 0

 21 [    0.000000] NUMA: Initmem setup node 0 [mem 0x40000000-0x13fffffff]

 22 [    0.000000] NUMA: NODE_DATA [mem 0x13ffea600-0x13ffec57f]

 23 [    0.000000] Zone ranges:

 24 [    0.000000]   DMA      [mem 0x0000000040000000-0x00000000ffffffff]

 25 [    0.000000]   Normal   [mem 0x0000000100000000-0x000000013fffffff]

 26 [    0.000000] Movable zone start for each node

 27 [    0.000000] Early memory node ranges

 28 [    0.000000]   node   0: [mem 0x0000000040000000-0x000000013fffffff]

 29 [    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000013fffffff]

 30 [    0.000000] On node 0 totalpages: 1048576

 31 [    0.000000]   DMA zone: 12288 pages used for memmap

 32 [    0.000000]   DMA zone: 0 pages reserved

 33 [    0.000000]   DMA zone: 786432 pages, LIFO batch:31

 34 [    0.000000]   Normal zone: 4096 pages used for memmap

 35 [    0.000000]   Normal zone: 262144 pages, LIFO batch:31

 36 [    0.000000] psci: probing for conduit method from DT.

 37 [    0.000000] psci: PSCIv0.2 detected in firmware.

 38 [    0.000000] psci: Using standard PSCI v0.2 function IDs

 39 [    0.000000] psci: Trusted OS migration not required

 40 [    0.000000] percpu: Embedded 21 pages/cpu @ffff8000fffbd000 s48128 r8192 d29696 u86016

 41 [    0.000000] pcpu-alloc: s48128 r8192 d29696 u86016 alloc=21*4096

 42 [    0.000000] pcpu-alloc: [0] 0 [0] 1 

 43 [    0.000000] Detected VIPT I-cache on CPU0

 44 [    0.000000] CPU features: enabling workaround for ARM erratum 845719

 45 [    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 1032192

 46 [    0.000000] Policy zone: Normal

 47 [    0.000000] Kernel command line: root=/dev/ram0 rw rootfstype=ext4 console=ttyAMA0 init=/linuxrc ignore_loglevel

 48 [    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)

 49 [    0.000000] software IO TLB [mem 0xfafff000-0xfefff000] (64MB) mapped at [ffff8000bafff000-ffff8000beffefff]

 50 [    0.000000] Memory: 4008696K/4194304K available (8572K kernel code, 946K rwdata, 3864K rodata, 1024K init, 398K bss, 169224K reserved, 16384K cma-reserved)

 51 [    0.000000] Virtual kernel memory layout:

 52 [    0.000000]     modules : 0xffff000000000000 - 0xffff000008000000   (   128 MB)

 53 [    0.000000]     vmalloc : 0xffff000008000000 - 0xffff7dffbfff0000   (129022 GB)

 54 [    0.000000]       .text : 0xffff000008080000 - 0xffff0000088e0000   (  8576 KB)

 55 [    0.000000]     .rodata : 0xffff0000088e0000 - 0xffff000008cb0000   (  3904 KB)

 56 [    0.000000]       .init : 0xffff000008cb0000 - 0xffff000008db0000   (  1024 KB)

 57 [    0.000000]       .data : 0xffff000008db0000 - 0xffff000008e9ca00   (   947 KB)

 58 [    0.000000]        .bss : 0xffff000008e9ca00 - 0xffff000008f003d0   (   399 KB)

 59 [    0.000000]     fixed   : 0xffff7dfffe7fd000 - 0xffff7dfffec00000   (  4108 KB)

 60 [    0.000000]     PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000   (    16 MB)

 61 [    0.000000]     vmemmap : 0xffff7e0000000000 - 0xffff800000000000   (  2048 GB maximum)

 62 [    0.000000]               0xffff7e0000000000 - 0xffff7e0004000000   (    64 MB actual)

 63 [    0.000000]     memory  : 0xffff800000000000 - 0xffff800100000000   (  4096 MB)

 64 [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1

 65 [    0.000000] Preemptible hierarchical RCU implementation.

 66 [    0.000000]     Build-time adjustment of leaf fanout to 64.

 67 [    0.000000]     RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=2.

 68 [    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=2

 69 [    0.000000] NR_IRQS:64 nr_irqs:64 0

 70 [    0.000000] GICv2m: range[mem 0x08020000-0x08020fff], SPI[80:143]

 71 [    0.000000] arm_arch_timer: WARNING: Invalid trigger for IRQ3, assuming level low

 72 [    0.000000] arm_arch_timer: WARNING: Please fix your firmware

 73 [    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 62.50MHz (virt).

 74 [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1cd42e208c, max_idle_ns: 881590405314 ns

 75 [    0.000102] sched_clock: 56 bits at 62MHz, resolution 16ns, wraps every 4398046511096ns

 76 [    0.002442] Console: colour dummy device 80x25

 77 [    0.005189] Calibrating delay loop (skipped), value calculated using timer frequency.. 125.00 BogoMIPS (lpj=250000)

 78 [    0.005287] pid_max: default: 32768 minimum: 301

 79 [    0.006012] Security Framework initialized

 80 [    0.008915] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)

 81 [    0.013062] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)

[1] [2] [3]
关键字:交叉编译  Python-2  7  ARM  aarch64 引用地址:交叉编译Python-2.7.13到ARM(aarch64)平台

上一篇:交叉编译Python-2.7.13到ARM(aarch32)—— 支持sqlite3
下一篇:讓TQ2440也用上設備樹(1)

推荐阅读最新更新时间:2024-11-05 16:47

终极大曝光 外媒贴出三星S7真机亮屏照
    三星Galaxy S7系列将于巴塞罗那当地时间2月21日正式发布,由于关注度和期待值都很高,三星S7在几乎每周都有新消息曝光。这不,今天国外科技网站Android Headlines就提前晒出了三星S7以及S7 edge的真机亮屏谍照,一起来看看终极曝光吧。 三星S7真机亮屏照   谍照显示,5.5英寸的三星S7 edge比5.2英寸的三星S7大。而整体上,三星S7的外观与三星S6没有太大差别,但在细节上有一些微妙的变化,比如三星S7将支持防水功能,主镜头的突起程度也减小了。 三星S7真机亮屏照     谍照中的设置界面显示,三星S7将运行Android 6.0.1操作系统,并内置KNOX
[手机便携]
全球7月芯片销售额年增24% 2017年可望创历史新高
半导体产业协会(SIA)于美国股市5日盘后公布,2017年7月全球半导体销售额年增24.0%(月增3.1%)至336亿美元。SIA指出,所有主要区域市场7月份月增率、年增率皆呈现正数。美洲市场领涨,7月年增率、月增率分别达到36.1%、5.4%。所有月销售数字均由世界半导体贸易统计协会(WSTS)编制,代表的是3个月移动平均值。 SIA会长John Neuffer指出,世界半导体销售额连续第12个月呈现年增、反映了全球半导体市场令人印象深刻的持续增长。他指出,全球半导体销售额可望在2017年再创历史新高。 SIA统计显示,2017年7月美洲、中国、亚太/全部其他地区、欧洲、日本分别年增36.1%、24.1%、20.5%、18.
[半导体设计/制造]
ARM指令集-数据处理指令
数据处理指令可分为数据传送指令、算术逻辑运算指令和比较指令等。 数据传送指令用于在寄存器和存储器之间进行数据的双向传输。 算术逻辑运算指令完成常用的算术与逻辑的运算,该类指令不但将运算结果保存在目的寄存器中,同时更新CPSR 中的相应条件标志位。 比较指令不保存运算结果,只更新CPSR 中相应的条件标志位。 数据处理指令包括: — MOV 数据传送指令 — MVN 数据取反传送指令 — CMP 比较指令 — CMN 反值比较指令 — TST 位测试指令 — TEQ 相等测试指令 — ADD 加法指令 — ADC 带进位加法指令 — SUB 减法指令 — SBC 带借位减法指令 — RSB 逆向减法指令 — RSC 带借位的逆向减法
[单片机]
EVault 7平台:备份和恢复的新面貌
圣迭戈--(美国商业资讯)--希捷公司(NASDAQ:STX)旗下子公司EVault, Inc.今天宣布发布EVault 7平台,该版本是对其行业领先的云连接备份和恢复平台的一次重要更新。新版平台提供更具恢复能力的基础架构,具有增强的复制功能和更多可供用户根据自身需求量身定制的部署选项。EVault 7提供更快的备份功能,在VMware 环境下比EVault 6快一倍,并针对分布式环境进行了优化。作为该版本的一部分,EVault推出了一个围绕“社交事务”而建的新管理界面。 EVault总裁兼总经理Terry Cunningham表示:“有了EVault 7,我们的客户将看到数据保护的未来形态。我们的备份和恢复平台专为云连接世界而
[网络通信]
7-基于51单片机的超声波测距及温度补偿
具体实现功能 系统由STC89C52单片机+超声波测距传感器(HC-SR04)+DS18B20温度传感器+LCD1602液晶显示屏+按键+蜂鸣器+电源构成 具体功能:1、LCD1602液晶显示测量的距离和温度; 2、测量范围0.02m~4m,精度为0.01m; 3、可以设置距离报警上下限值;按键功能:加键,减键,设置键 4、超过设定的报警上下限值则开始声光报警。 设计背景 单片机技术的迅速兴起与蓬勃发展,其稳定、安全、高效、经济等优点十分突出,所以其应用也十分广泛。单片机已经无处不在、与我们生活息息相关,并且渗透到生活的方方面面,如空调、VCD机、手机、微波炉、自动洗衣机及汽车电子设备等。单片机的特点是体积较小
[单片机]
<font color='red'>7</font>-基于51单片机的超声波测距及温度补偿
基于ARM9的嵌入式智能车载系统设计
   引 言   随着社会经济的发展,汽车已成为人们工作、生活中不可缺少的一种交通工具。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,开发了各种各样的电子控制系统。本文设计一种基于ARM9 S3C2410A的智能车载系统,它能够通过GPS全球定位系统和GPRS无线通信技术,实现车辆定位以及车辆与控制中心之间的数据通信,构建CAN总线控制模块用于采集车辆主要部分的工作状态,实时监控汽车的主要技术参数,并通过LCD模块显示车载信息的综合信息。    1 智能车载系统的功能   车载智能导航终端应具有如下功能:   车辆定位 它指通过GPS全球定位系统获取车辆的当前所处位置,包括经度、纬度、运动速度、
[单片机]
基于LPC2132的双驱电动车控制系统设计(一)
摘要:论文详细分析了无刷直流电机的驱动控制,设计了基于ARM7 LPC2132微处理器的电动汽车双后轮驱动控制系统,该智能控制器能够实现电动汽车前进.后退.自动巡航.电子差速等电动汽车基本行使功能,同时硬件具有电机过流保护.电池欠压保护及串口通信等功能,很好地满足了实际使用要求. 1.概述 当今石油资源匮乏与环境保护的紧迫需求,对汽车工业的发展提出了新的要求,那就是:低噪声.零排放和节能等,电动汽车正是当今汽车工业籍以解决能源.环保等问题可持续发展的最重要途径,而以轮毂电机为驱动的电动车既可以消除传统传动中的机械磨损与损耗,提高了传动效率,又具有体积小和重量轻的优点,使得提高效率的同时,车轮空间也能得到有效利用,更有利于实
[单片机]
基于LPC2<font color='red'>13</font>2的双驱电动车控制系统设计(一)
7.点亮led的操作
Led可以作为我调试程序的工具。 OK6410的核心板原理图:led的部分截图: 我们从上面的原理图知道,led1-4对应的是GPM0-3. 2.GPIO GPIO是General-Purpose Input/Output Ports:通用输入/输出端口。在嵌入式系统中,CPU经常需要控制许多结构简单的外部设备或者电路,这些设备通常只要两种状态,即是开关,对这些设备的控制,使用传统的串口或者USB口就显得复杂,所以,在嵌入式为控制器上通常提供了一种 通用的可编程的I/O端口 ,也就是GPIO。 下面是6410GPIO的信息:GPMCON控制寄存器: GPMDAT数据寄存器: 实现的代码:点亮。3、4灯。
[单片机]
<font color='red'>7</font>.点亮led的操作
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved