历史上的今天
返回首页

历史上的今天

今天是:2025年02月16日(星期日)

正在发生

2020年02月16日 | 交叉编译Python-2.7.13到ARM(aarch64)平台

2020-02-16 来源:eefocus

方法跟交叉编译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)

推荐阅读

史海拾趣

B+B SmartWorx公司的发展小趣事

B+B SmartWorx的前身是B&B Electronics,一个在1981年成立的公司,起初主要为无线和有线网络提供设备连接解决方案。随着技术的快速发展,物联网和M2M连接的需求日益增长,B&B Electronics意识到必须进行创新以应对市场的变化。于是,公司开始致力于开发“边缘智能”技术,使网络连接设备更加智能、自主和响应迅速。这一创新转型使得公司在物联网行业中崭露头角,并在2015年决定将公司名称更改为B+B SmartWorx,以更好地反映其业务重心和技术方向。

全智景(Allvision)公司的发展小趣事

为了进一步提升公司的竞争力,全智景公司开始实施全球化战略。公司积极拓展海外市场,与多个国家和地区的企业建立了合作关系。通过引进国外先进的技术和管理经验,全智景公司不断提升自身的综合实力。同时,公司还积极参与国际展览和交流活动,提升了品牌知名度和影响力。这一全球化战略为全智景公司带来了更广阔的发展空间和市场机遇。

Floeth Electronic Ltd公司的发展小趣事

随着技术的不断进步,全智景公司开始寻求跨界合作的机会,以拓展其技术的应用领域。公司与多家汽车制造商达成了合作协议,将其电子视觉技术应用于汽车自动驾驶系统。通过精准的图像识别和处理,全智景的技术帮助汽车实现了更高级别的自动驾驶功能,提升了行车安全性和驾驶体验。这一跨界合作不仅拓宽了全智景公司的业务范围,也为其带来了更多的商业机会。

Barnbrook Systems Limited公司的发展小趣事

随着技术的不断进步,Barnbrook意识到单一的电路板产品已经无法满足市场的多元化需求。于是,公司开始拓展产品线,逐步推出了包括服务器、存储设备以及网络设备在内的一系列电子产品。同时,Barnbrook也积极开拓国内外市场,通过参加国际电子展会、建立销售网络等方式,不断提升品牌知名度和市场份额。

3L Electronic Corporation公司的发展小趣事

面对日新月异的电子科技,3L Electronic Corporation始终坚持以技术创新为核心竞争力。公司投入大量研发资源,不断推出具有市场竞争力的新产品。从传统的电子零组件到智能电子设备,再到物联网解决方案,3L的产品线不断升级,满足了市场的多样化需求。

固驰(GUERTE)公司的发展小趣事

近年来,固驰电子积极响应时代趋势和市场变化,不断加大技术创新力度。同时,作为REFLEK技术公司(又称Reflek恒昼科技)旗下的品牌,固驰(FlexiShield)还启动了品牌重塑计划,旨在以全新面貌引领行业未来发展方向。Reflek恒昼科技在金属隔热原膜及磁控膜领域拥有深厚的技术积累,其打造的FlexiShield固驰窗膜和漆面保护膜品牌迅速在市场上占据一席之地,进一步丰富了固驰电子的产品线。

问答坊 | AI 解惑

日本常用三极管

这是在我的硬盘里的资料,拿出来共享一下。希望能对大家有参考价值。…

查看全部问答>

iar avr twi 多从机源码

来源于AVR网站 /***************************************************************************** * * Atmel Corporation * * File         : main.c * Compiler       : IAR EWAAVR 2 ...…

查看全部问答>

99SE中写PCB中文字体

1、解压后将此文件放入C盘   2、在放入C盘后,在FONT.EXE文件中编辑你所要放的汉字   3、编辑好汉字后,在PROTEL99SE的PCB状态下,找到你放入PROTELHZ文件夹的路径,导入PCBHZ.LIB文件      采用以上步 ...…

查看全部问答>

网卡驱动

网卡驱动是不是在Linux下编写TCP通讯协议?…

查看全部问答>

飞行体验项目——看看这样的项目谁能作

项目:飞行体验项目 说明:         飞行体验装置由现时屏幕和控制器两部分组成,控制器为飞鸟外形,小朋友们可以俯卧在控制器上操作飞行器,电脑模拟的飞行场景以及小朋友的操作结果会在显示屏幕上显示  &n ...…

查看全部问答>

求智能电源监控管理软件方案(有偿服务)

本方案包括PWM 3路;A/D输入6路;双向I/O口 7路;D/A输出1路。要求用PIC、瑞萨或ATMEL 的八位单片机,如有兴趣请联系18923776056 或QQ1538444360 [ 本帖最后由 vpgpu 于 2011-1-2 19:50 编辑 ]…

查看全部问答>

关于NE555的问题。当输入高电平,输出低电平不够低怎么办?量出来2.7。

做单稳电路。高电平3.7,低电平2.7。 [ 本帖最后由 huang91 于 2011-11-10 15:49 编辑 ]…

查看全部问答>

TI Stellais SSI

Master or slave Master runs up to sys_clk/2 (25Mb @ 50MHz) Slave runs up to sys_clk/12 (4.1667Mb @ 50MHz)  …

查看全部问答>

帮忙看下为什么不产生PWM波啊

我用的芯片是LM3S2B93,Keil4工程,调试PWM时怎么也产生不了PWM,其他功能正常,大家帮忙看下是怎么回事啊~急急!! unsigned long gSysClock = 12000000UL; #define PWM_FREQ    6000           & ...…

查看全部问答>