目录
官方说明连接: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位应用程序。