目录

官方说明连接: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根文件系统。

以下详细步骤分为三个基本阶段:

  1. 使用Xilinx Vivado和PetaLinux工具配置硬件平台和基本引导附件,如ARM可信固件,U-Boot,设备树和Linux内核。
  2. 下载并配置公共可用的Ubuntu Core根文件系统,使其驻留在SD卡上的专用ext3分区中。
  3. 配置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位应用程序相关推荐

  1. 64位Linux上编译32位软件

    问题:我的软件是运行在32位环境下的,原来也是在CentOS 6.3 32位上编译,运行都是没有问题的: 最近CentOS 7出来了,但是只有x86_64的,我的任务就是将我的软件移植到64位的Cen ...

  2. 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 ...

  3. 64位Ubuntu上编译32位程序

    1.确认主机为64位架构的内核,应该输出为adm64,执行: $ dpkg --print-architecture 2.确认打开了多支架功能,应该输出为i386,执行: $ dpkg --print ...

  4. 在64位linux下编译32位程序

    一般情况下我们最好是在一个平台上编译本平台的二进制程序,比如在32位平台上编译32位程序而在64位平台上编译64位程序. 现在64位的系统(这里主要指x86_64系统,包括AMD64和Intel的EM ...

  5. 64位系统上运行32位程序的内存限制

    64位系统上运行32位程序能否申请到8G内存? 收藏到手机    转发   评论 2010-01-20 10:56 申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来 ...

  6. 64位Ubuntu上 安装32位QQ

    64位Ubuntu上 安装32位QQ --------------------------------------------------------------------------------- ...

  7. 关于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 ...

  8. 64位装32位oracle软件,在64位linux下安装32位oracle软件

    在某些情况下,有时我们需要在64位的系统下来安装32的oracle软件(如,客户的变态要求).虽然在理论上,这种方式是可行的,但在实际的安装过程中确往往是错误百出,为了避免不必要的错误,也为了方便以后 ...

  9. 在64位操作系统上运行32位的程序

    运行 32 位程序 WOW64 子系统使 32 位程序能够在基于 x64 版本的 Windows Server 2003 和 Windows XP 专业 x64 版的运行而不用修改.WOW64 子系统 ...

最新文章

  1. linux 远程主机发送消息,linux – rsyslog不会将远程消息写入特定主机的日志文件...
  2. idea中git打tag(亲测)
  3. 编写你的第一个 Django 应用,第 4 部分
  4. python print中文_python:print含有中文的list
  5. 如何实现滑动scrollview上下隐藏
  6. js 数字序号 转 字母序号
  7. Linux系统文件用户共享,Linux操作系统下的共享文件夹用户设定
  8. HashMap源码分析(转载)
  9. 腾讯视频 android 2倍,腾讯视频多倍速播放产品设计小结
  10. git的简易上手笔记,及常用命令集合
  11. 六分钟八法则塑造优秀程序员
  12. Oracle 存储过程、存储函数 与原生 JDBC 调用
  13. 【分享】豆瓣上排名top100的书籍
  14. Blender 合成节点 中英文对照
  15. 小程序服务器装rsshub,用RSSHub制作自己的RSS订阅源
  16. 小程序收费标准是什么,多少钱一年?
  17. 【华为联机对战服务】如何保存及查看联机对战SDK日志?
  18. ubuntu 下安装flash player
  19. DNA存储大数据,峰哥身价暴涨10个亿
  20. How to configure Copyright Profiles in IntelliJ IDEA

热门文章

  1. docker 入门教程指南
  2. 那些计算机界的伟大女性
  3. 局部敏感哈希Locality Sensitive Hashing归总
  4. Python 异常处理 Python 基础教程 try..except
  5. Python爬虫实战(3):计算大学本学期绩点
  6. 跟我一起写 Makefile(五)
  7. 大数据小白系列——HDFS(3)
  8. 实现基于渠道和buildType(debug,release)的打包
  9. Statement与PreparedStatement区别
  10. 慢动作输出 Linux 命令结果并用彩色显示