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根文件系统。

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

  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 

创建PetaLinux项目后,使用Vivado生成的HDF文件对其进行初始化:

$ petalinux-config --get-hw-description = 

项目初始化后,PetaLinux将自动启动系统级menuconfig界面。现在,只需退出界面并返回终端提示即可。

使用petalinux-build命令构建Linux项目。这将构建一个使用INITRAMFS根文件系统的Linux映像。

$ petalinux-build

构建完成后,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分区。

 

Zynq UltraScale + MPSoC示例设计 - 在64位Linux上执行32位应用程序_第1张图片

 

 

 

退出配置菜单并使用petalinux-build命令重建PetaLinux项目:

$ petalinux-build

构建完成后,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端口因计算机而异。

 

Zynq UltraScale + MPSoC示例设计 - 在64位Linux上执行32位应用程序_第2张图片





打开电路板并等待系统引导至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位应用程序。

你可能感兴趣的:(Xilinx_Zynq开发)