Zynq UltraScale + MPSoC示例设计 - 在64位Linux上执行32位应用程序
目录
官方说明连接:https://china.xilinx.com/support/answers/66636.html
描述
解决方案
官方说明连接:https://china.xilinx.com/support/answers/66636.html
描述
我在Linux上运行Zynq UltraScale + MPSoC,我需要访问32位应用程序。是否可以在此平台上运行multiarch Linux?
解决方案
以下过程描述了如何在ZCU102评估平台上引导64位Ubuntu Core根文件系统。
以下详细步骤分为三个基本阶段:
- 使用Xilinx Vivado和PetaLinux工具配置硬件平台和基本引导附件,如ARM可信固件,U-Boot,设备树和Linux内核。
- 下载并配置公共可用的Ubuntu Core根文件系统,使其驻留在SD卡上的专用ext3分区中。
- 配置apt-get软件包管理器以允许安装32位应用程序
由此产生的系统可以作为开发更强大的基于Ubuntu的系统的起点,该系统适合于给定系统的特定需求。
在继续之前,请确保应用“链接的项目”部分中列出的修补程序。
XILINX建立步骤
本节中的步骤是标准的PetaLinux构建步骤。有关此处引用的命令的更多详细信息,请参阅(UG1144)。
创建面向Zynq UltraScale + MPSoC的Vivado 2015.4项目,确保项目语言设置为Verilog。ZCU102评估平台基于XCZU9EG-FFVB1156-2I器件。
使用附加的Tcl文件为此平台生成Vivado IP Integrator框图。
创建程序框图后,为其生成HDL包装程序并通过实施设计阶段运行项目。
实施后,将HDF文件导出到磁盘上的已知位置。通常,最简单的方法是将HDF导出到与Vivado项目相同的目录中。
使用zynqMP模板获取PetaLinux设计工具并创建PetaLinux项目:
$ petalinux-create -t project --template zynqMP -n <your_project_name>
创建PetaLinux项目后,使用Vivado生成的HDF文件对其进行初始化:
$ petalinux-config --get-hw-description = <path_to_HDF>
项目初始化后,PetaLinux将自动启动系统级menuconfig界面。现在,只需退出界面并返回终端提示即可。
使用petalinux-build命令构建Linux项目。这将构建一个使用INITRAMFS根文件系统的Linux映像。
$ petalinux-build
构建完成后,Linux映像附件将位于<PETALINUX_PROJECT_ROOL / images / linux中。
使用petalinux-package命令创建标准Zynq UltraScale + MPSoC启动映像(称为boot.bin):
$ petalinux-package --boot --format BIN --u-boot -o BOOT.BIN
将boot.bin文件复制到其他位置以便安全保存。
将image.ub文件重命名为initramfs.ub并将其复制到其他位置以便安全保存。
使用petalinux-config命令返回PetaLinux系统级menuconfig:
$ petalinux-config
配置项目,以便从ext3 SD卡分区/ dev / mmcblk0p2引导平台。
此选项位于<菜单顶部> - >图像打包配置 - >根文件系统类型。确保“SD设备的设备节点”选项反映/ dev / mmcblk0p2分区。
退出配置菜单并使用petalinux-build命令重建PetaLinux项目:
$ petalinux-build
构建完成后,Linux映像附件将位于<PETALINUX_PROJECT_ROOL / images / linux中。
将image.ub文件重命名为sdcard.ub并将其复制到其他位置以便安全保存。
使用标准分区工具(如gparted或fdisk),对SD卡进行分区,使其具有一个大小为128MB的FAT32分区和一个大小为4GB或更大的ext3分区。
如果操作系统未自动完成此操作,请装入刚刚创建的分区。
将先前创建的boot.bin和.ub文件复制到SD卡的FAT32分区。
UBUNTU核心配置步骤
从http://cdimage.ubuntu.com/ubuntu-core/releases/14.04/release/ubuntu-core-14.04.3-core-arm64.tar.gz下载64位ARM版Ubuntu Core 14.04的副本
将下载的tarball复制到SD卡的ext3分区,并使用标准Linux tar命令将其解压缩。以root身份(或使用sudo提升)运行此命令非常重要,这样可以创建根文件系统的某些部分。
$ sudo tar xvfz ubuntu-core-14.04.3-core-arm64.tar.gz
解压缩后,将附加的ttyPS0.conf和ttyPS1.conf文件复制到/ etc / init目录。这将确保在引导后显示登录提示。
为了正确启动,Ubuntu要求文件系统中至少存在一个非root用户。要执行此操作,请使用先前创建的initramfs.ub内核映像进行引导。
在SD卡的FAT32分区上,将initramfs.ub映像文件复制(或重命名)为image.ub。
卸载FAT32分区和ext3分区,然后从主机弹出SD卡。
将SD卡插入ZCU102板的SD卡插槽,并将其配置为从SD卡启动。
使用TeraTerm或PuTTY等工具打开终端窗口。终端输出将显示在UART接口0上。具体的COM端口因计算机而异。
打开电路板并等待系统引导至Linux登录提示。默认用户名和密码组合为root / root。
登录后,将目录更改为Linux文件系统的根目录:
#cd /
创建可用于chroot命令的临时工作目录:
#mkdir / chroot_mnt
将ext3分区挂载到chroot挂载点:
#mount / dev / mmcblk0p2 / chroot_mnt
使用chroot命令切换到Ubuntu根文件系统:
#chroot / chroot_mnt
进入chroot环境后,使用adduser命令为Ubuntu Core环境添加新用户:
#adduser ubuntu #addgroup ubuntu adm #addgroup ubuntu sudo
为了使网络自动工作,请在/etc/network/interfaces.d/中创建网络配置脚本
此答复记录附有名为eth0的示例脚本。
使用exit命令退出chroot环境。
从挂载点卸载ext3分区:
#umount / chroot_mnt
关闭ZCU102单板电源,将SD卡从单板上拔出。
将SD卡重新插入主机。
从主计算机,导航到SD卡的FAT32分区。
将sdcard.ub映像文件复制(或重命名)为image.ub
从主计算机中弹出SD卡,然后将其重新插入ZCU102。再次打开电路板并监控终端输出。
设置32位存储库
在此引导期间,Zynq UltraScale + MPSoC器件将引导到位于SD卡的ext3分区上的根文件系统,而不是INITRAMFS。
出现登录提示时,请使用上面为“ubuntu”用户创建的凭据。
登录系统后。使用以下命令添加32位CPU目标:
sudo dpkg --add-architecture armhf
使用以下命令更新包列表:
sudo apt-get -y update
您应该看到armhf版本现在可用。armhf封装是32位封装,而arm64封装是64位封装。
现在可以使用终端提示符中的标准apt-get方法安装32位应用程序。
Zynq UltraScale + MPSoC示例设计 - 在64位Linux上执行32位应用程序相关推荐
- 64位Linux上编译32位软件
问题:我的软件是运行在32位环境下的,原来也是在CentOS 6.3 32位上编译,运行都是没有问题的: 最近CentOS 7出来了,但是只有x86_64的,我的任务就是将我的软件移植到64位的Cen ...
- linux 64 32 编译支持,在64位linux上编译32位程序 for i386 intel
编辑中 # ld -V GNU ld version 2.15.92.0.2 20040927 Supported emulations: elf_x86_64 elf_i386 i386linux ...
- 64位Ubuntu上编译32位程序
1.确认主机为64位架构的内核,应该输出为adm64,执行: $ dpkg --print-architecture 2.确认打开了多支架功能,应该输出为i386,执行: $ dpkg --print ...
- 在64位linux下编译32位程序
一般情况下我们最好是在一个平台上编译本平台的二进制程序,比如在32位平台上编译32位程序而在64位平台上编译64位程序. 现在64位的系统(这里主要指x86_64系统,包括AMD64和Intel的EM ...
- 64位系统上运行32位程序的内存限制
64位系统上运行32位程序能否申请到8G内存? 收藏到手机 转发 评论 2010-01-20 10:56 申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来 ...
- 64位Ubuntu上 安装32位QQ
64位Ubuntu上 安装32位QQ --------------------------------------------------------------------------------- ...
- 关于python在64位机器上打包32位exe(兼容xp系统)解决方法
python在64位机器上打包32位exe 1.下载32位python 3.4.4及以下版本支持xp,32位3.4.4下载地址https://www.python.org/ftp/python/3.4 ...
- 64位装32位oracle软件,在64位linux下安装32位oracle软件
在某些情况下,有时我们需要在64位的系统下来安装32的oracle软件(如,客户的变态要求).虽然在理论上,这种方式是可行的,但在实际的安装过程中确往往是错误百出,为了避免不必要的错误,也为了方便以后 ...
- 在64位操作系统上运行32位的程序
运行 32 位程序 WOW64 子系统使 32 位程序能够在基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的运行而不用修改.WOW64 子系统 ...
最新文章
- linux 远程主机发送消息,linux – rsyslog不会将远程消息写入特定主机的日志文件...
- idea中git打tag(亲测)
- 编写你的第一个 Django 应用,第 4 部分
- python print中文_python:print含有中文的list
- 如何实现滑动scrollview上下隐藏
- js 数字序号 转 字母序号
- Linux系统文件用户共享,Linux操作系统下的共享文件夹用户设定
- HashMap源码分析(转载)
- 腾讯视频 android 2倍,腾讯视频多倍速播放产品设计小结
- git的简易上手笔记,及常用命令集合
- 六分钟八法则塑造优秀程序员
- Oracle 存储过程、存储函数 与原生 JDBC 调用
- 【分享】豆瓣上排名top100的书籍
- Blender 合成节点 中英文对照
- 小程序服务器装rsshub,用RSSHub制作自己的RSS订阅源
- 小程序收费标准是什么,多少钱一年?
- 【华为联机对战服务】如何保存及查看联机对战SDK日志?
- ubuntu 下安装flash player
- DNA存储大数据,峰哥身价暴涨10个亿
- How to configure Copyright Profiles in IntelliJ IDEA