目录
官方说明连接: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根文件系统。
以下详细步骤分为三个基本阶段:
由此产生的系统可以作为开发更强大的基于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): 将boot.bin文件复制到其他位置以便安全保存。 将image.ub文件重命名为initramfs.ub并将其复制到其他位置以便安全保存。 使用petalinux-config命令返回PetaLinux系统级menuconfig: 配置项目,以便从ext3 SD卡分区/ dev / mmcblk0p2引导平台。 此选项位于<菜单顶部> - >图像打包配置 - >根文件系统类型。确保“SD设备的设备节点”选项反映/ dev / mmcblk0p2分区。 退出配置菜单并使用petalinux-build命令重建PetaLinux项目: 构建完成后,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提升)运行此命令非常重要,这样可以创建根文件系统的某些部分。 解压缩后,将附加的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文件系统的根目录: 创建可用于chroot命令的临时工作目录: 将ext3分区挂载到chroot挂载点: 使用chroot命令切换到Ubuntu根文件系统: 进入chroot环境后,使用adduser命令为Ubuntu Core环境添加新用户: 为了使网络自动工作,请在/etc/network/interfaces.d/中创建网络配置脚本 此答复记录附有名为eth0的示例脚本。 使用exit命令退出chroot环境。 从挂载点卸载ext3分区: 关闭ZCU102单板电源,将SD卡从单板上拔出。 将SD卡重新插入主机。 从主计算机,导航到SD卡的FAT32分区。 将sdcard.ub映像文件复制(或重命名)为image.ub 从主计算机中弹出SD卡,然后将其重新插入ZCU102。再次打开电路板并监控终端输出。 设置32位存储库 在此引导期间,Zynq UltraScale + MPSoC器件将引导到位于SD卡的ext3分区上的根文件系统,而不是INITRAMFS。 出现登录提示时,请使用上面为“ubuntu”用户创建的凭据。 登录系统后。使用以下命令添加32位CPU目标: 使用以下命令更新包列表: 您应该看到armhf版本现在可用。armhf封装是32位封装,而arm64封装是64位封装。 现在可以使用终端提示符中的标准apt-get方法安装32位应用程序。$ petalinux-package --boot --format BIN --u-boot -o BOOT.BIN
$ petalinux-config
$ petalinux-build
$ sudo tar xvfz ubuntu-core-14.04.3-core-arm64.tar.gz
打开电路板并等待系统引导至Linux登录提示。默认用户名和密码组合为root / root。#cd /
#mkdir / chroot_mnt
#mount / dev / mmcblk0p2 / chroot_mnt
#chroot / chroot_mnt
#adduser ubuntu
#addgroup ubuntu adm
#addgroup ubuntu sudo
#umount / chroot_mnt
sudo dpkg --add-architecture armhf
sudo apt-get -y update