方法跟交叉編譯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
2
3 export PATH=/home/pengdonglin/src/qemu/aarch64/gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux/bin:$PATH
4
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)
上一篇:交叉編譯Python-2.7.13到ARM(aarch32)—— 支持sqlite3
下一篇:讓TQ2440也用上設備樹(1)
推薦閱讀
史海拾趣
在電子行業的初期,Coil-Q Corporation以其獨特的線圈技術嶄露頭角。公司創始人發現了傳統線圈在效率和穩定性上的不足,于是投入大量資源進行研發,成功開發出一種新型高效線圈。這一創新不僅提高了電子設備的性能,還降低了能耗,迅速贏得了市場的青睞。隨著技術的不斷完善和市場的擴大,Coil-Q逐漸成為了電子線圈領域的領軍企業。
2015年,FIDELIX迎來了一個重要的轉折點。在這一年,東芯半導體有限公司(以下簡稱“東芯半導體”)正式收購了FIDELIX 25.3%的股權,成為其第一大股東及實際控制人。這一收購標志著FIDELIX開始進入一個新的發展階段。
通過與東芯半導體的合作,FIDELIX獲得了更多的資金支持和市場資源。東芯半導體是一家專注于中小容量存儲芯片研發、設計和銷售的中國企業,在半導體領域擁有豐富的經驗和資源。雙方的合作不僅為FIDELIX帶來了更多的發展機會,同時也加速了FIDELIX在國際市場上的擴張步伐。
在上述兩個故事的基礎上,可以根據FIDELIX公司的具體發展歷程、重要事件、技術創新、市場策略等方面進行進一步的拓展和補充,以形成完整、詳細的故事內容。
在電子行業中,產品質量是企業生存和發展的關鍵。Cellergy公司深知這一點,始終將品質放在首位。公司建立了嚴格的質量管理體系,從原材料采購到生產加工再到產品出廠,每一個環節都嚴格把關。這種對品質的執著追求使得Cellergy公司的電容器產品在市場中獲得了良好的口碑,贏得了客戶的信賴和支持。
DESIGNERSYSTEMS公司的創始人在電子行業有著深厚的背景和獨特的見解。他們發現市場上缺乏一種能夠集成多種功能、高度定制化的電子設備設計解決方案。于是,他們創立了DESIGNERSYSTEMS,專注于提供從概念到原型再到量產的全方位設計服務。通過不斷的技術創新和對市場需求的精準把握,DESIGNERSYSTEMS迅速在電子行業樹立了自己的品牌形象,贏得了客戶的信賴。
作為一家有社會責任感的企業,EBG RESISTORS LLC公司積極履行環保責任。他們采用環保材料和生產工藝,減少生產過程中的廢棄物排放。同時,公司還積極參與公益活動,回饋社會。這種負責任的態度贏得了客戶和社會的廣泛贊譽。
DEWALT公司始終將技術創新作為企業發展的核心動力。在創始人雷蒙得偉的領導下,公司不斷投入研發,推出了一系列具有創新性的電動工具產品。這些產品不僅具有高效、耐用的特點,還滿足了不同用戶的需求。通過不斷的技術創新和產品拓展,DEWALT公司逐漸在電動工具行業中占據了重要地位。
大家好: 在我的程序里用了::TrackPopupMenu,程序編譯通過了,但連接時又出現如下錯誤: error LNK2019: 無法解析的外部符號 TrackPopupMenu。 我在.cpp文件中已經#include <winuser.h>,TrackPopupMenu就在wi ...… 查看全部問答∨ |
|
本帖最后由 ddllxxrr 于 2016-1-7 17:11 編輯 由于快遞沒到所以團購的maple開發板延誤了預計明天會到 本站強薦:185娛樂﹪城.足球﹪真_人.彩票齊全﹪手機可投﹪注任何游戲. 首次開戶送10元.首存送58元.信譽絕對保證185.cc … 查看全部問答∨ |
|
具體點是 現在有多個數據過來 比如說 一號燈亮 二號等亮 三號滅 四號滅 這些是不同個信號源發送過來的 這些都是同時發送給51 能不能讓51 同時記錄下來 記錄后打包做好標記 然后不同時刻發送出去 !! ...… 查看全部問答∨ |
|
進度一直是50%的同學,是不是每次點擊的是上圖中的片頭,看完整個視頻進度只有50%呢? 技術告訴我們,雖然說從片頭可以直接學習課件。但是對系統來講片頭與課程是整個視頻的兩部分。所以,需要點一下“課程”。否則,系統會認為 “課程”這個部 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- Hercules :安全MCU 初體驗
- 學知識,贏好禮|泰克半導體材料與器件測試技術電源特性篇!
- 深入東芝參考設計庫:夯實您的設計庫,讓您的設計更出彩
- 1月22日下午14:00Mouser攜手Maxim邀您觀看有獎直播:深入淺出可穿戴健康監測
- 有獎直播|羅徹斯特電子半導體全周期解決方案 助您應對供應鏈中斷和元器件停產的挑戰
- 答題抽獎:Mentor Tessent Automotive相關測試解決方案(獎品池還剩不少獎品喲)
- 國產芯4月:開啟ADC和DAC之旅,曬一曬你用過哪個段位的ADC/DAC~
- 2021 Digi‑Key KOL 視頻系列:新型智能曝光算法在人臉識別中的應用
- TI單芯片毫米波傳感器產品組合新品發布會,誠邀參與,預注冊贏好禮
- EEWORLD2018開年送禮,答題贏紅包